diff --git a/changelogs/fragments/per-location-server-types.yml b/changelogs/fragments/per-location-server-types.yml index ab361ee..b366677 100644 --- a/changelogs/fragments/per-location-server-types.yml +++ b/changelogs/fragments/per-location-server-types.yml @@ -1,3 +1,87 @@ +release_summary: | + `Server Types`_ now depend on `Locations`_. + + - We added a new ``locations`` property to the `Server Types`_ resource. The new + property defines a list of supported `Locations`_ and additional per `Locations`_ + details such as deprecations information. + + - We deprecated the ``deprecation`` property from the `Server Types`_ resource. The + property will gradually be phased out as per `Locations`_ deprecations are being + announced. Please use the new per `Locations`_ deprecation information instead. + + See our `changelog`_ for more details. + + **Upgrading** + + .. code:: yaml + + # Before + --- + - name: Validate server type + hosts: localhost + connection: local + tasks: + - name: Fetch server type info + hetzner.hcloud.server_type_info: + name: cx22 + register: server_type + + - name: Ensure server type exists + ansible.builtin.assert: + fail_msg: server type does not exists + that: + - server_type.hcloud_server_type_info | count == 1 + + - name: Ensure server type is not deprecated + ansible.builtin.assert: + fail_msg: server type is deprecated + that: + - server_type.hcloud_server_type_info[0].deprecation is none + + .. code:: yaml + + # After + --- + - name: Validate server type + hosts: localhost + connection: local + tasks: + - name: Fetch location info + hetzner.hcloud.location_info: + name: fsn1 + register: location + + - name: Fetch server type info + hetzner.hcloud.server_type_info: + name: cx22 + register: server_type + + - name: Ensure server type exists + ansible.builtin.assert: + fail_msg: server type does not exists + that: + - server_type.hcloud_server_type_info | count == 1 + + - name: Extract server type location info + ansible.builtin.set_fact: + server_type_location: > + {{ + server_type.hcloud_server_type_info[0].locations + | selectattr("name", "eq", location.hcloud_location_info[0].name) + | first + }} + + - name: Ensure server type is not deprecated + ansible.builtin.assert: + fail_msg: server type is deprecated in location + that: + - server_type_location.deprecation is none + + .. _Server Types: https://docs.hetzner.cloud/reference/cloud#server-types + .. _Locations: https://docs.hetzner.cloud/reference/cloud#locations + .. _changelog: https://docs.hetzner.cloud/changelog#2025-09-24-per-location-server-types + minor_changes: - - server_type_info - Return new Server Type ``locations`` property. The new property defines a list of supported Locations and additional per Locations details such as deprecations information. - - server_type_info - Deprecate Server Type ``deprecation`` property. The property will gradually be phased out as per Locations deprecations are being announced. Please use the new per Locations deprecation information instead. + - server_type_info - Return new Server Type ``locations`` property. +deprecated_features: + - server_type_info - Deprecate Server Type ``deprecation`` property.