2.16.0 (2024-11-05)
2.15.0 (2024-10-31)
- exp: add mockutil.Server helper (#543) (fa1069b)
- exp: fail test when mock calls were expected but not received (#542) (01392cc)
2.14.0 (2024-10-21)
- add support for Go 1.23 (#532) (838f878)
- allow retrieving the action from an action error (#538) (07727d3)
- include action ID in action error string (#539) (ad5417f)
- deprecate pricing floating ip field (#523) (1089d40)
- deprecate unused window parameter in the
EnableBackup
call (#531) (584f6c2), closes #525
2.13.1 (2024-08-09)
2.13.0 (2024-08-06)
2.12.0 (2024-07-25)
There will be a breaking change in the API regarding Traffic Prices and Server Type Included Traffic on 2024-08-05. This release marks the affected fields as Deprecated
. Please check if this affects any of your code and switch to the replacement fields where necessary.
You can learn more about this change in our changelog.
If you were using the field hcloud.ServerType.IncludedTraffic
, you can now get the information through hcloud.ServerType.Pricings
:
func main() {
// previous
includedTraffic := serverType.IncludedTraffic
// now
locationOfInterest := "fsn1"
var includedTraffic uint64
for _, price := range serverType.Pricings {
if price.Location.Name == locationOfInterest {
includedTraffic = price.IncludedTraffic
break
}
}
}
If you were using the field hcloud.Pricing.Traffic
, you can now get the information through hcloud.Pricing.ServerTypes
or hcloud.Pricing.LoadBalancerTypes
:
func main() {
// previous
trafficPrice := pricing.Traffic
// now
serverTypeOfInterest := "cx22"
locationOfInterest := "fsn1"
var trafficPrice hcloud.Price
for _, serverTypePricings := range pricing.ServerTypes {
if serverTypePricings.ServerType.Name == serverTypeOfInterest {
for _, price := range serverTypePricings {
if price.Location.Name == locationOfInterest {
trafficPrice = price.PerTBTraffic
break
}
}
}
}
}
- add jitter in the client default retry exponential backoff (#492) (6205076)
- add new
WithPollOpts
client option (#493) (2c1a2d6) - allow checking multiple errors codes in
IsError
(#491) (af59ab8) - load-balancer-type: new traffic price fields (94e0f44)
- pricing: mark traffic field as deprecated (94e0f44)
- server-type: mark included traffic field as deprecated (94e0f44)
- server-type: new traffic price fields (94e0f44)
2.11.0 (2024-07-23)
- add truncated exponential backoff with full jitter (#459) (fd1f46c)
- allow configuring retry options (#488) (2db9575)
- exp: add sliceutil package (#489) (f4ad6bc)
- exp: rename
*utils
package to*util
(#487) (19da475) - respect cancelled contexts during retry sleep (#470) (756f605)
- retry requests when the api gateway errors (#470) (756f605)
- retry requests when the network timed out (#470) (756f605)
- retry requests when the rate limit was reached (#470) (756f605)
2.10.2 (2024-06-26)
2.10.1 (2024-06-25)
2.10.0 (2024-06-25)
- exp: add envutils package (#466) (a7636bd)
- exp: add labelutils with selector (#465) (1a55a7e)
- exp: add mock utils package (#460) (92f7c62)
- exp: rename
AppendNextActions
toAppendNext
(#452) (9b6239a) - filter out nil actions in action waiter (#464) (4fc9a40)
2.9.0 (2024-05-29)
2.8.0 (2024-05-06)
- error: show internal correlation id in error messages (#411) (6c96d19)
- implement actions waiter (#407) (1e3fa70)
- require Go >= 1.21 (#424) (d4f4000)
2.7.2 (2024-04-19)
2.7.1 (2024-04-18)
2.7.0 (2024-03-27)
- add volume format property (#397) (c0940af)
- error: handle wrapped errors in IsError() (#374) (83df108)
- require Go >= 1.20 (#392) (299f181)
- server: deprecate ServerRescueTypeLinux32 (#378) (2f334c3)
- test with Go 1.22 (#391) (49be506)
- falsely omitted fields in firewall schema (#396) (a3509b6)
- LoadBalancerUpdateServiceOpts not converted correctly (#394) (0f187ce)
- primary ip assignee id not mapped to nil (#395) (b5fea38)
2.6.0 (2024-01-09)
- alias deprecated field to deprecation info struct (#371) (e961be9)
- instrumentation: allow passing in any prometheus.Registerer (#369) (0821c07)
2.5.1 (2023-12-13)
2.5.0 (2023-12-12)
- add conversion methods from schema to hcloud objects (#343) (6feda4d)
- add interfaces for client structs (#342) (4f9390f)
- add missing properties (#349) (c8a28d0)
- error: include http response in api errors (#320) (9558239)
2.4.0 (2023-10-12)
2.3.0 (2023-10-04)
2.2.0 (2023-08-24)
2.1.1 (2023-08-15)
2.1.0 (2023-08-08)
- action: unexpected behaviour when watching non-existing Actions (#298) (0727d42)
- instrumentation: multiple instrumented clients cause panic (#289) (c0ef9b6)
2.0.0 (2023-07-12)
- use int64 for ID fields (#282)
- action: show accurate progress in WatchOverallProgress (#281) (cae9e57)
- iso: invalid field include_wildcard_architecture (188b68a)
1.47.0 (2023-06-21)
1.46.1 (2023-06-16)
- adjust label validation for max length of 63 characters (#273) (6382808)
- deps: update module golang.org/x/net to v0.11.0 (#258) (7918f21)
1.46.0 (2023-06-13)
- provide
.AllWithOpts
method for all clients (#266) (2a7249e) - servertype: implement new Deprecation api field (#268) (ac5ae2e)
1.45.1 (2023-05-11)
1.45.0 (2023-05-11)
1.44.0 (2023-05-05)
1.43.0 (2023-04-26)
1.42.0 (2023-04-12)
1.41.0 (2023-03-06)
- deps: update module github.com/google/go-cmp to v0.5.9 (#237) (2237ff7)
- deps: update module github.com/prometheus/client_golang to v1.14.0 (#241) (75a4a01)
- deps: update module github.com/stretchr/testify to v1.8.2 (#242) (4b51f1e)
- deps: update module golang.org/x/net to v0.7.0 [security] (#236) (774a560)
- deps: update module golang.org/x/net to v0.8.0 (#243) (8ae14f3)
1.40.0 (2023-02-08)
- action: use configurable backoff to wait for action progress (#227) (8da6417)
- support go v1.20 and drop v1.18 (#231) (44af6e5)
1.39.0 (2022-12-29)
- feat(network): add new Network Zone us-west by @apricote in #217
- chore: prepare v1.38.0 by @apricote in #218
Full Changelog: https://github.com/hetznercloud/hcloud-go/compare/v1.37.0...v1.38.0
- PrimaryIPClient Add AllWithOpts by @LKaemmerling in #214
- fix: error when updating IPv6 Primary IP by @apricote in #215
Full Changelog: https://github.com/hetznercloud/hcloud-go/compare/v1.36.0...v1.37.0
- feat: add ServerClient.DeleteWithResult method by @apricote in #213
- @apricote made their first contribution in #213
Full Changelog: https://github.com/hetznercloud/hcloud-go/compare/v1.35.3...v1.36.0
- Drop support for Go < 1.17 and add official tests on go 1.19 by @LKaemmerling in #211
- Stop automatic retrying on RateLimitExceeded by @LKaemmerling in #210
Full Changelog: https://github.com/hetznercloud/hcloud-go/compare/v1.35.2...v1.35.3
- Allow empty labels by @4ND3R50N in #207
Full Changelog: https://github.com/hetznercloud/hcloud-go/compare/v1.35.1...v1.35.2
- Accept no primary IPs with server create with StartAfterCreate = false by @4ND3R50N in #205
Full Changelog: https://github.com/hetznercloud/hcloud-go/compare/v1.35.0...v1.35.1
- Catch invalid token values and error out without value exposure by @NotTheEvilOne in #194
- Remove ServerRescueTypeFreeBSD64 by @LKaemmerling in #203
- Add Primary IP Support by @LKaemmerling in #204
- @NotTheEvilOne made their first contribution in #194
Full Changelog: https://github.com/hetznercloud/hcloud-go/compare/v1.34.0...v1.35.0
- Test on Go 1.18 by @LKaemmerling in #202
- Add support for sorting the response of all list calls by @LKaemmerling in #201
- Set UsePrivateIP for targets when creating a LoadBalancer by @hakman in #198
- @hakman made their first contribution in #198
Full Changelog: https://github.com/hetznercloud/hcloud-go/compare/v1.33.2...v1.34.0
- Add constant for resource locked error code by @patrickschaffrath in #189
- Fix metadata client error detection by @choffmeister in #193
- Add labels.go to validate resource labels by @4ND3R50N in #197
- @patrickschaffrath made their first contribution in #189
- @choffmeister made their first contribution in #193
- @4ND3R50N made their first contribution in #197
Full Changelog: https://github.com/hetznercloud/hcloud-go/compare/v1.33.1...v1.33.2
41fef2f Add constants for new firewall error code
- Add us-east network zone by @LKaemmerling in #187
Full Changelog: https://github.com/hetznercloud/hcloud-go/compare/v1.32.0...v1.33.0
785896c Add Metadata Client (#184) 7778143 Bump version to 1.32.0 eabe683 Make it possible to instrument the hcloud-go (#185)
1cde0d7 Add RDNS client (#183)
0656bf9 Add support for Load Balancer DNS PTRs (#182) 9218970 Bump hcloud.Version ebf9f25 Test on/with go 1.17 (#181)
592b198 Add new Floating IP Pricing structure (#180) c43897a Bump hcloud.Version ab0ebb2 Placement groups (#179)
e951e99 Fix firewall rule description
e3eca12 Add description field to firewall rules (#177)
ae5e1b8 Add goreleaser (#175) 4cf75f4 Add support for app images (#176)
Add support for firewall protocols ESP and GRE (#173)
- Fix AppliedTo Field in FirewallCreateRequest
- Add
deleted
andIsDeleted()
toImage
(#172)
- Fix validation error caused by firewall label selectors (#171)
- Add Firewall Resource Label Selector (#169)
- Support Hetzner Cloud managed Certificates (#167)
- Add removed
ErrorCodeServerAlreadyAttached
again
- Add missing constants for all resource specific error codes
- Expose metrics for Servers and Load Balancers
- Add support for vSwitch Subnetworks
- Add
PrimaryDiskSize
Field toServer
- Don't send
Authorization
Header whenWithToken
was not called
- Add
IncludeDeprecated
Field toImageListOpts
- Add support for Load Balancer Label Selector targets
- Add support for Load Balancer IP targets
- Fix nil pointer dereference when creating a Load Balancer with HTTP(S) service and not providing HTTP-specific options
- Add
IncludedTraffic
,OutgoingTraffic
andIngoingTraffic
fields toLoadBalancer
- Add
ChangeType()
method to the Load Balancer client - Fix retrying of requests that contain a body
- Retry API requests on conflict error
- Make all
GetByName
methods returnnil
when an empty name is provided - Clarify that filters specified in options for List() calls are not taken into account when their value corresponds to their zero value or when they are empty.
- Add
Status
field toVolume
- Add subnet type
cloud
- Add
WithHTTPClient
option to specify a customhttp.Client
- Add API for requesting a VNC console
- Add support for load balancers and certificates (beta)
- Add
Created
field toSSHKey
- Make IP range optional when adding a subnet to a network
- Add support for names to Floating IPs
- Rename
MacAddress
toMACAddress
onServerPrivateNet
- Add
MacAddress
field toServerPrivateNet
- Add
WithDebugWriter()
client option to provide anio.Writer
to write debug output to
- Add
Created
field toFloatingIP
- Add support for networks
- Add missing fields to
*ListOpts
structs - Fix error handling in
WatchProgress()
- Add support for filtering volumes, images, and servers by status
- Add missing constants for all documented error codes
- Add support for automounting volumes
- Add support for attaching volumes when creating a server
- Add
NextActions
toServerCreateResult
andVolumeCreateResult
- Add
WithApplication()
client option to provide an application name and version that will be included in theUser-Agent
HTTP header - Add support for volumes
- Add
AllWithOpts()
to server, Floating IP, image, and SSH key client - Expose labels of servers, Floating IPs, images, and SSH Keys
- Add
WithPollInterval()
option toClient
which allows to specify the polling interval (issue #92) - Add
CPUType
field toServerType
(issue #91)
- Add
Deprecated
field toImage
(issue #88) - Add
StartAfterCreate
flag toServerCreateOpts
(issue #87) - Fix enum types (issue #89)
- Add
ChangeProtection()
to server, Floating IP, and image client - Expose protection of servers, Floating IPs, and images
- Add
GetByFingerprint()
to SSH key client
- Retry all calls that triggered the API ratelimit
- Slow down
WatchProgress()
in action client from 100ms polling interval to 500ms
- Make clients using the old error code for ratelimiting work as expected (issue #73)
- Support passing user data on server creation (issue #70)
- Fix leaking response body by not closing it (issue #68)
- Add
WatchProgress()
to action client - Use correct error code for ratelimit error (deprecated
ErrorCodeLimitReached
, addedErrorCodeRateLimitExceeded
)
- Add
Image
field toServer