Skip to content

Latest commit

 

History

History
771 lines (428 loc) · 35.8 KB

CHANGELOG.md

File metadata and controls

771 lines (428 loc) · 35.8 KB

Changelog

2.17.0 (2024-11-20)

Features

  • exp: add mock requests after mock server creation (#558) (f9879fd)

Bug Fixes

  • do not send primary IPs ID opts to the API (#552) (4e70340)

2.16.0 (2024-11-05)

Features

  • use custom IDOrName type for schemas (#545) (1d97017)

Bug Fixes

2.15.0 (2024-10-31)

Features

  • 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)

Features

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • invalid_input API errors may not return details (#507) (ca78af2)

2.13.0 (2024-08-06)

Features

  • network: add new network zone ap-southeast (#501) (a79a06b)

Bug Fixes

2.12.0 (2024-07-25)

API Changes for Traffic Prices and Server Type Included Traffic

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.

Upgrading

Server Type Included Traffic

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
        }
    }
}
Traffic Prices

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
               }
            }
        }
    }
}

Features

  • 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)

Features

  • 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)

Bug Fixes

2.10.2 (2024-06-26)

Bug Fixes

  • exp: allow request path matching in the want function (#475) (267879b)

2.10.1 (2024-06-25)

Bug Fixes

  • exp: configure response headers before sending them (#473) (07d4a35)

2.10.0 (2024-06-25)

Features

Bug Fixes

  • nil check against the embedded http.Response (#469) (46e489a)

2.9.0 (2024-05-29)

Features

Bug Fixes

  • exp: rename to sshutils package name (#450) (6d4100d)

2.8.0 (2024-05-06)

Features

Bug Fixes

  • improve error message format with correlation id (#430) (013477f)

2.7.2 (2024-04-19)

Bug Fixes

  • creating firewall with rules not working correctly (#412) (43b2bab)

2.7.1 (2024-04-18)

Bug Fixes

  • setting firewall rules not working correctly (#405) (16daea0)

2.7.0 (2024-03-27)

Features

Bug Fixes

  • 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)

Features

  • alias deprecated field to deprecation info struct (#371) (e961be9)
  • instrumentation: allow passing in any prometheus.Registerer (#369) (0821c07)

2.5.1 (2023-12-13)

Bug Fixes

  • schema conversion outputs debug messages to stdout (#354) (ade8fbd)

2.5.0 (2023-12-12)

Features

  • 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)

Bug Fixes

2.4.0 (2023-10-12)

Features

2.3.0 (2023-10-04)

Features

Bug Fixes

  • ensure the pollBackoffFunc is correctly set (#322) (2b2f869)

2.2.0 (2023-08-24)

Features

  • support resource-specific Action endpoints (#295) (ddc2ac4)

2.1.1 (2023-08-15)

Bug Fixes

2.1.0 (2023-08-08)

Features

Bug Fixes

  • action: unexpected behaviour when watching non-existing Actions (#298) (0727d42)
  • instrumentation: multiple instrumented clients cause panic (#289) (c0ef9b6)

2.0.0 (2023-07-12)

⚠ BREAKING CHANGES

  • use int64 for ID fields (#282)

Features

Bug Fixes

  • action: show accurate progress in WatchOverallProgress (#281) (cae9e57)
  • iso: invalid field include_wildcard_architecture (188b68a)

1.47.0 (2023-06-21)

Features

  • network: add field expose_routes_to_vswitch (#277) (e73c52d)

1.46.1 (2023-06-16)

Bug Fixes

  • 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)

Features

  • provide .AllWithOpts method for all clients (#266) (2a7249e)
  • servertype: implement new Deprecation api field (#268) (ac5ae2e)

1.45.1 (2023-05-11)

Bug Fixes

  • servertype: use int64 to fit TB sizes on 32-bit platforms (#261) (2b19245)

1.45.0 (2023-05-11)

Features

  • servertype: add field for included traffic (#259) (d3b012a)

1.44.0 (2023-05-05)

Features

  • iso: extend ISOClient by AllWithOpts method (#254) (c42f69b)

Bug Fixes

  • deps: update module github.com/prometheus/client_golang to v1.15.1 (#253) (275f0fd)

1.43.0 (2023-04-26)

Features

Bug Fixes

  • deps: update module github.com/prometheus/client_golang to v1.15.0 (#250) (f10e804)

1.42.0 (2023-04-12)

Features

Bug Fixes

  • deps: update module golang.org/x/net to v0.9.0 (#247) (962afeb)

1.41.0 (2023-03-06)

Features

  • add ServerClient.RebuildWithResult to return root password (#245) (82f97cf)

Bug Fixes

  • 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)

Features

  • 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)

Features

  • Use generics to get pointers to types (#219) (a5cd797)

Bug Fixes

  • deprecate PricingPrimaryIPTypePrice.Datacenter for Location (#222) (e0e5a1e)

v1.38.0

What's Changed

  • 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

v1.37.0

What's Changed

  • 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

v1.36.0

What's Changed

  • feat: add ServerClient.DeleteWithResult method by @apricote in #213

New Contributors

  • @apricote made their first contribution in #213

Full Changelog: https://github.com/hetznercloud/hcloud-go/compare/v1.35.3...v1.36.0

v1.35.3

What's Changed

  • 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

v1.35.2

What's Changed

  • Allow empty labels by @4ND3R50N in #207

Full Changelog: https://github.com/hetznercloud/hcloud-go/compare/v1.35.1...v1.35.2

v1.35.1

What's Changed

  • 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

v1.35.0

What's Changed

  • 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

New Contributors

  • @NotTheEvilOne made their first contribution in #194

Full Changelog: https://github.com/hetznercloud/hcloud-go/compare/v1.34.0...v1.35.0

v1.34.0

What's Changed

  • 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

New Contributors

  • @hakman made their first contribution in #198

Full Changelog: https://github.com/hetznercloud/hcloud-go/compare/v1.33.2...v1.34.0

v1.33.2

What's Changed

  • 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

New Contributors

  • @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

v1.33.1

Changelog

41fef2f Add constants for new firewall error code

v1.33.0

What's Changed

  • Add us-east network zone by @LKaemmerling in #187

Full Changelog: https://github.com/hetznercloud/hcloud-go/compare/v1.32.0...v1.33.0

v1.32.0

Changelog

785896c Add Metadata Client (#184) 7778143 Bump version to 1.32.0 eabe683 Make it possible to instrument the hcloud-go (#185)

v1.31.1

Changelog

1cde0d7 Add RDNS client (#183)

v1.31.0

Changelog

0656bf9 Add support for Load Balancer DNS PTRs (#182) 9218970 Bump hcloud.Version ebf9f25 Test on/with go 1.17 (#181)

v1.30.0

Changelog

592b198 Add new Floating IP Pricing structure (#180) c43897a Bump hcloud.Version ab0ebb2 Placement groups (#179)

v1.29.1

Changelog

e951e99 Fix firewall rule description

v1.29.0

Changelog

e3eca12 Add description field to firewall rules (#177)

v1.28.0

Changelog

ae5e1b8 Add goreleaser (#175) 4cf75f4 Add support for app images (#176)

v1.27.0

Add support for firewall protocols ESP and GRE (#173)

v1.26.2

  • Fix AppliedTo Field in FirewallCreateRequest
  • Add deleted and IsDeleted() to Image (#172)

v1.26.1

  • Fix validation error caused by firewall label selectors (#171)

v1.26.0

  • Add Firewall Resource Label Selector (#169)

v1.25.0

  • Support Hetzner Cloud managed Certificates (#167)

v1.23.1

  • Add removed ErrorCodeServerAlreadyAttached again

v1.23.0

  • Add missing constants for all resource specific error codes
  • Expose metrics for Servers and Load Balancers
  • Add support for vSwitch Subnetworks

v1.22.0

  • Add PrimaryDiskSize Field to Server

v1.21.1

  • Don't send Authorization Header when WithToken was not called

v1.21.0

  • Add IncludeDeprecated Field to ImageListOpts

v1.20.0

  • Add support for Load Balancer Label Selector targets
  • Add support for Load Balancer IP targets

v1.19.0

  • Fix nil pointer dereference when creating a Load Balancer with HTTP(S) service and not providing HTTP-specific options
  • Add IncludedTraffic, OutgoingTraffic and IngoingTraffic fields to LoadBalancer
  • Add ChangeType() method to the Load Balancer client
  • Fix retrying of requests that contain a body

v1.18.2

  • Retry API requests on conflict error

v1.18.1

  • Make all GetByName methods return nil 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.

v1.18.0

  • Add Status field to Volume
  • Add subnet type cloud
  • Add WithHTTPClient option to specify a custom http.Client
  • Add API for requesting a VNC console
  • Add support for load balancers and certificates (beta)

v1.17.0

  • Add Created field to SSHKey

v1.16.0

  • Make IP range optional when adding a subnet to a network
  • Add support for names to Floating IPs

v1.15.1

  • Rename MacAddress to MACAddress on ServerPrivateNet

v1.15.0

  • Add MacAddress field to ServerPrivateNet
  • Add WithDebugWriter() client option to provide an io.Writer to write debug output to

v1.14.0

  • Add Created field to FloatingIP
  • Add support for networks

v1.13.0

  • Add missing fields to *ListOpts structs
  • Fix error handling in WatchProgress()
  • Add support for filtering volumes, images, and servers by status

v1.12.0

  • Add missing constants for all documented error codes
  • Add support for automounting volumes
  • Add support for attaching volumes when creating a server

v1.11.0

  • Add NextActions to ServerCreateResult and VolumeCreateResult

v1.10.0

  • Add WithApplication() client option to provide an application name and version that will be included in the User-Agent HTTP header
  • Add support for volumes

v1.9.0

  • Add AllWithOpts() to server, Floating IP, image, and SSH key client
  • Expose labels of servers, Floating IPs, images, and SSH Keys

v1.8.0

  • Add WithPollInterval() option to Client which allows to specify the polling interval (issue #92)
  • Add CPUType field to ServerType (issue #91)

v1.7.0

v1.6.0

  • Add ChangeProtection() to server, Floating IP, and image client
  • Expose protection of servers, Floating IPs, and images

v1.5.0

  • Add GetByFingerprint() to SSH key client

v1.4.0

  • Retry all calls that triggered the API ratelimit
  • Slow down WatchProgress() in action client from 100ms polling interval to 500ms

v1.3.1

  • Make clients using the old error code for ratelimiting work as expected (issue #73)

v1.3.0

  • Support passing user data on server creation (issue #70)
  • Fix leaking response body by not closing it (issue #68)

v1.2.0

  • Add WatchProgress() to action client
  • Use correct error code for ratelimit error (deprecated ErrorCodeLimitReached, added ErrorCodeRateLimitExceeded)

v1.1.0

  • Add Image field to Server