diff --git a/changelogs/fragments/add-deprecation-field-to-iso-info.yaml b/changelogs/fragments/add-deprecation-field-to-iso-info.yaml new file mode 100644 index 00000000..6952a596 --- /dev/null +++ b/changelogs/fragments/add-deprecation-field-to-iso-info.yaml @@ -0,0 +1,2 @@ +minor_changes: + - hcloud_iso_info - Add deprecation field diff --git a/plugins/modules/hcloud_iso_info.py b/plugins/modules/hcloud_iso_info.py index 1a72b29d..55152bcc 100644 --- a/plugins/modules/hcloud_iso_info.py +++ b/plugins/modules/hcloud_iso_info.py @@ -90,10 +90,33 @@ description: > ISO 8601 timestamp of deprecation, None if ISO is still available. After the deprecation time it will no longer be possible to attach the - ISO to servers. + ISO to servers. This field is deprecated. Use `deprecation` instead. returned: always type: str sample: "2024-12-01T00:00:00+00:00" + deprecation: + description: > + Describes if, when & how the resources was deprecated. If this field is + set to None the resource is not deprecated. If it has a value, it is + considered deprecated. + returned: if the resource is deprecated + type: dict + contains: + announced: + description: Date of when the deprecation was announced. + returned: always + type: str + sample: "2021-11-01T00:00:00+00:00" + unavailable_after: + description: > + After the time in this field, the resource will not be available + from the general listing endpoint of the resource type, and it can + not be used in new resources. For example, if this is an image, + you can not create new servers with this image after the mentioned + date. + returned: always + type: str + sample: "2021-12-01T00:00:00+00:00" """ from typing import List, Optional @@ -126,6 +149,12 @@ def _prepare_result(self): "type": iso_info.type, "architecture": iso_info.architecture, "deprecated": iso_info.deprecated, + "deprecation": { + "announced": iso_info.deprecation.announced.isoformat(), + "unavailable_after": iso_info.deprecation.unavailable_after.isoformat(), + } + if iso_info.deprecation is not None + else None, } ) diff --git a/tests/integration/targets/hcloud_iso_info/tasks/test.yml b/tests/integration/targets/hcloud_iso_info/tasks/test.yml index 8332866a..a1d42423 100644 --- a/tests/integration/targets/hcloud_iso_info/tasks/test.yml +++ b/tests/integration/targets/hcloud_iso_info/tasks/test.yml @@ -30,6 +30,8 @@ - result.hcloud_iso_info[0].name == "{{ hcloud_iso_name }}" - result.hcloud_iso_info[0].architecture == "{{ hcloud_iso_architecture }}" - result.hcloud_iso_info[0].type == "{{ hcloud_iso_type }}" + - result.hcloud_iso_info[0].deprecated is none + - result.hcloud_iso_info[0].deprecation is none - name: Gather hcloud_iso_info with wrong id hetzner.hcloud.hcloud_iso_info: