From f00d1445c30978291247fd3c746511c81fd4ff1f Mon Sep 17 00:00:00 2001 From: Bernd Verst Date: Wed, 25 Feb 2026 01:45:47 -0800 Subject: [PATCH 1/5] Update CLI to API 2026-02-01 and add PE --- .../durabletask/retention_policy/_create.py | 8 +- .../durabletask/retention_policy/_delete.py | 8 +- .../durabletask/retention_policy/_show.py | 8 +- .../durabletask/retention_policy/_update.py | 10 +- .../durabletask/retention_policy/_wait.py | 6 +- .../latest/durabletask/scheduler/_create.py | 141 ++++++++++-- .../latest/durabletask/scheduler/_delete.py | 6 +- .../aaz/latest/durabletask/scheduler/_list.py | 214 ++++++++++++++---- .../aaz/latest/durabletask/scheduler/_show.py | 130 +++++++++-- .../latest/durabletask/scheduler/_update.py | 136 +++++++++-- .../aaz/latest/durabletask/scheduler/_wait.py | 128 +++++++++-- .../aaz/latest/durabletask/taskhub/_create.py | 6 +- .../aaz/latest/durabletask/taskhub/_delete.py | 6 +- .../aaz/latest/durabletask/taskhub/_list.py | 6 +- .../aaz/latest/durabletask/taskhub/_show.py | 6 +- .../aaz/latest/durabletask/taskhub/_update.py | 8 +- .../aaz/latest/durabletask/taskhub/_wait.py | 4 +- src/durabletask/azext_durabletask/commands.py | 5 + src/durabletask/azext_durabletask/custom.py | 31 +++ 19 files changed, 697 insertions(+), 170 deletions(-) diff --git a/src/durabletask/azext_durabletask/aaz/latest/durabletask/retention_policy/_create.py b/src/durabletask/azext_durabletask/aaz/latest/durabletask/retention_policy/_create.py index 55bce9ab691..8cc73c3a3f8 100644 --- a/src/durabletask/azext_durabletask/aaz/latest/durabletask/retention_policy/_create.py +++ b/src/durabletask/azext_durabletask/aaz/latest/durabletask/retention_policy/_create.py @@ -22,9 +22,9 @@ class Create(AAZCommand): """ _aaz_info = { - "version": "2025-11-01", + "version": "2026-02-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/retentionpolicies/default", "2025-11-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/retentionpolicies/default", "2026-02-01"], ] } @@ -49,7 +49,7 @@ def _build_arguments_schema(cls, *args, **kwargs): required=True, ) _args_schema.scheduler_name = AAZStrArg( - options=["--scheduler-name"], + options=["-s", "--scheduler-name"], help="The name of the Scheduler", required=True, fmt=AAZStrArgFormat( @@ -163,7 +163,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } diff --git a/src/durabletask/azext_durabletask/aaz/latest/durabletask/retention_policy/_delete.py b/src/durabletask/azext_durabletask/aaz/latest/durabletask/retention_policy/_delete.py index fd061da01f4..e5036473c2c 100644 --- a/src/durabletask/azext_durabletask/aaz/latest/durabletask/retention_policy/_delete.py +++ b/src/durabletask/azext_durabletask/aaz/latest/durabletask/retention_policy/_delete.py @@ -23,9 +23,9 @@ class Delete(AAZCommand): """ _aaz_info = { - "version": "2025-11-01", + "version": "2026-02-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/retentionpolicies/default", "2025-11-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/retentionpolicies/default", "2026-02-01"], ] } @@ -50,7 +50,7 @@ def _build_arguments_schema(cls, *args, **kwargs): required=True, ) _args_schema.scheduler_name = AAZStrArg( - options=["--scheduler-name"], + options=["-s", "--scheduler-name"], help="The name of the Scheduler", required=True, id_part="name", @@ -146,7 +146,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } diff --git a/src/durabletask/azext_durabletask/aaz/latest/durabletask/retention_policy/_show.py b/src/durabletask/azext_durabletask/aaz/latest/durabletask/retention_policy/_show.py index 810cd01743f..6c9f6870697 100644 --- a/src/durabletask/azext_durabletask/aaz/latest/durabletask/retention_policy/_show.py +++ b/src/durabletask/azext_durabletask/aaz/latest/durabletask/retention_policy/_show.py @@ -19,9 +19,9 @@ class Show(AAZCommand): """ _aaz_info = { - "version": "2025-11-01", + "version": "2026-02-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/retentionpolicies/default", "2025-11-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/retentionpolicies/default", "2026-02-01"], ] } @@ -45,7 +45,7 @@ def _build_arguments_schema(cls, *args, **kwargs): required=True, ) _args_schema.scheduler_name = AAZStrArg( - options=["--scheduler-name"], + options=["-s", "--scheduler-name"], help="The name of the Scheduler", required=True, id_part="name", @@ -120,7 +120,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } diff --git a/src/durabletask/azext_durabletask/aaz/latest/durabletask/retention_policy/_update.py b/src/durabletask/azext_durabletask/aaz/latest/durabletask/retention_policy/_update.py index 09e8c6342a9..3753753b195 100644 --- a/src/durabletask/azext_durabletask/aaz/latest/durabletask/retention_policy/_update.py +++ b/src/durabletask/azext_durabletask/aaz/latest/durabletask/retention_policy/_update.py @@ -16,9 +16,9 @@ class Update(AAZCommand): """ _aaz_info = { - "version": "2025-11-01", + "version": "2026-02-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/retentionpolicies/default", "2025-11-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/retentionpolicies/default", "2026-02-01"], ] } @@ -45,7 +45,7 @@ def _build_arguments_schema(cls, *args, **kwargs): required=True, ) _args_schema.scheduler_name = AAZStrArg( - options=["--scheduler-name"], + options=["-s", "--scheduler-name"], help="The name of the Scheduler", required=True, id_part="name", @@ -160,7 +160,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } @@ -259,7 +259,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } diff --git a/src/durabletask/azext_durabletask/aaz/latest/durabletask/retention_policy/_wait.py b/src/durabletask/azext_durabletask/aaz/latest/durabletask/retention_policy/_wait.py index 7bc5c6c0948..4d6b93a39f6 100644 --- a/src/durabletask/azext_durabletask/aaz/latest/durabletask/retention_policy/_wait.py +++ b/src/durabletask/azext_durabletask/aaz/latest/durabletask/retention_policy/_wait.py @@ -20,7 +20,7 @@ class Wait(AAZWaitCommand): _aaz_info = { "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/retentionpolicies/default", "2025-11-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/retentionpolicies/default", "2026-02-01"], ] } @@ -44,7 +44,7 @@ def _build_arguments_schema(cls, *args, **kwargs): required=True, ) _args_schema.scheduler_name = AAZStrArg( - options=["--scheduler-name"], + options=["-s", "--scheduler-name"], help="The name of the Scheduler", required=True, id_part="name", @@ -119,7 +119,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } diff --git a/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_create.py b/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_create.py index 70e0af5109a..043c74285dd 100644 --- a/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_create.py +++ b/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_create.py @@ -19,12 +19,15 @@ class Create(AAZCommand): :example: Create a scheduler in eastus az durabletask scheduler create --resource-group testrg --name testscheduler --location eastus --ip-allowlist "[0.0.0.0/0]" --sku-capacity 1, --sku-name "Dedicated" --tags "{}" + + :example: Create a Consumption SKU scheduler with public network access disabled + az durabletask scheduler create --resource-group rgopenapi --name testscheduler --location northcentralus --sku-name "Consumption" --public-network-access Disabled --tags "{department:research,development:true}" """ _aaz_info = { - "version": "2025-11-01", + "version": "2026-02-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}", "2025-11-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}", "2026-02-01"], ] } @@ -64,6 +67,13 @@ def _build_arguments_schema(cls, *args, **kwargs): options=["--ip-allowlist"], arg_group="Properties", help="IP allow list for durable task scheduler. Values can be IPv4, IPv6 or CIDR", + default=[], + ) + _args_schema.public_network_access = AAZStrArg( + options=["--public-network-access"], + arg_group="Properties", + help="Allow or disallow public network access to durable task scheduler", + enum={"Disabled": "Disabled", "Enabled": "Enabled"}, ) ip_allowlist = cls._args_schema.ip_allowlist @@ -186,7 +196,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } @@ -218,6 +228,7 @@ def content(self): properties = _builder.get(".properties") if properties is not None: properties.set_prop("ipAllowlist", AAZListType, ".ip_allowlist", typ_kwargs={"flags": {"required": True}}) + properties.set_prop("publicNetworkAccess", AAZStrType, ".public_network_access") properties.set_prop("sku", AAZObjectType, ".", typ_kwargs={"flags": {"required": True}}) ip_allowlist = _builder.get(".properties.ipAllowlist") @@ -267,6 +278,7 @@ def _build_schema_on_200_201(cls): serialized_name="systemData", flags={"read_only": True}, ) + _CreateHelper._build_schema_system_data_read(_schema_on_200_201.system_data) _schema_on_200_201.tags = AAZDictType() _schema_on_200_201.type = AAZStrType( flags={"read_only": True}, @@ -280,10 +292,17 @@ def _build_schema_on_200_201(cls): serialized_name="ipAllowlist", flags={"required": True}, ) + properties.private_endpoint_connections = AAZListType( + serialized_name="privateEndpointConnections", + flags={"read_only": True}, + ) properties.provisioning_state = AAZStrType( serialized_name="provisioningState", flags={"read_only": True}, ) + properties.public_network_access = AAZStrType( + serialized_name="publicNetworkAccess", + ) properties.sku = AAZObjectType( flags={"required": True}, ) @@ -291,34 +310,68 @@ def _build_schema_on_200_201(cls): ip_allowlist = cls._schema_on_200_201.properties.ip_allowlist ip_allowlist.Element = AAZStrType() - sku = cls._schema_on_200_201.properties.sku - sku.capacity = AAZIntType() - sku.name = AAZStrType( - flags={"required": True}, + private_endpoint_connections = cls._schema_on_200_201.properties.private_endpoint_connections + private_endpoint_connections.Element = AAZObjectType() + + _element = cls._schema_on_200_201.properties.private_endpoint_connections.Element + _element.id = AAZStrType( + flags={"read_only": True}, ) - sku.redundancy_state = AAZStrType( - serialized_name="redundancyState", + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _element.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _CreateHelper._build_schema_system_data_read(_element.system_data) + _element.type = AAZStrType( flags={"read_only": True}, ) - system_data = cls._schema_on_200_201.system_data - system_data.created_at = AAZStrType( - serialized_name="createdAt", + properties = cls._schema_on_200_201.properties.private_endpoint_connections.Element.properties + properties.group_ids = AAZListType( + serialized_name="groupIds", + flags={"read_only": True}, ) - system_data.created_by = AAZStrType( - serialized_name="createdBy", + properties.private_endpoint = AAZObjectType( + serialized_name="privateEndpoint", ) - system_data.created_by_type = AAZStrType( - serialized_name="createdByType", + properties.private_link_service_connection_state = AAZObjectType( + serialized_name="privateLinkServiceConnectionState", + flags={"required": True}, ) - system_data.last_modified_at = AAZStrType( - serialized_name="lastModifiedAt", + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, ) - system_data.last_modified_by = AAZStrType( - serialized_name="lastModifiedBy", + + group_ids = cls._schema_on_200_201.properties.private_endpoint_connections.Element.properties.group_ids + group_ids.Element = AAZStrType() + + private_endpoint = cls._schema_on_200_201.properties.private_endpoint_connections.Element.properties.private_endpoint + private_endpoint.id = AAZStrType( + flags={"read_only": True}, + ) + + private_link_service_connection_state = cls._schema_on_200_201.properties.private_endpoint_connections.Element.properties.private_link_service_connection_state + private_link_service_connection_state.actions_required = AAZStrType( + serialized_name="actionsRequired", ) - system_data.last_modified_by_type = AAZStrType( - serialized_name="lastModifiedByType", + private_link_service_connection_state.description = AAZStrType() + private_link_service_connection_state.status = AAZStrType() + + sku = cls._schema_on_200_201.properties.sku + sku.capacity = AAZIntType() + sku.name = AAZStrType( + flags={"required": True}, + ) + sku.redundancy_state = AAZStrType( + serialized_name="redundancyState", + flags={"read_only": True}, ) tags = cls._schema_on_200_201.tags @@ -330,5 +383,49 @@ def _build_schema_on_200_201(cls): class _CreateHelper: """Helper class for Create""" + _schema_system_data_read = None + + @classmethod + def _build_schema_system_data_read(cls, _schema): + if cls._schema_system_data_read is not None: + _schema.created_at = cls._schema_system_data_read.created_at + _schema.created_by = cls._schema_system_data_read.created_by + _schema.created_by_type = cls._schema_system_data_read.created_by_type + _schema.last_modified_at = cls._schema_system_data_read.last_modified_at + _schema.last_modified_by = cls._schema_system_data_read.last_modified_by + _schema.last_modified_by_type = cls._schema_system_data_read.last_modified_by_type + return + + cls._schema_system_data_read = _schema_system_data_read = AAZObjectType( + flags={"read_only": True} + ) + + system_data_read = _schema_system_data_read + system_data_read.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data_read.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data_read.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data_read.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data_read.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data_read.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + _schema.created_at = cls._schema_system_data_read.created_at + _schema.created_by = cls._schema_system_data_read.created_by + _schema.created_by_type = cls._schema_system_data_read.created_by_type + _schema.last_modified_at = cls._schema_system_data_read.last_modified_at + _schema.last_modified_by = cls._schema_system_data_read.last_modified_by + _schema.last_modified_by_type = cls._schema_system_data_read.last_modified_by_type + __all__ = ["Create"] diff --git a/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_delete.py b/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_delete.py index a35fa42fa3a..cb58bb0f479 100644 --- a/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_delete.py +++ b/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_delete.py @@ -23,9 +23,9 @@ class Delete(AAZCommand): """ _aaz_info = { - "version": "2025-11-01", + "version": "2026-02-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}", "2025-11-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}", "2026-02-01"], ] } @@ -146,7 +146,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } diff --git a/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_list.py b/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_list.py index b46c96494ee..98e4d1e8e3b 100644 --- a/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_list.py +++ b/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_list.py @@ -22,10 +22,10 @@ class List(AAZCommand): """ _aaz_info = { - "version": "2025-11-01", + "version": "2026-02-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/providers/microsoft.durabletask/schedulers", "2025-11-01"], - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers", "2025-11-01"], + ["mgmt-plane", "/subscriptions/{}/providers/microsoft.durabletask/schedulers", "2026-02-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers", "2026-02-01"], ] } @@ -112,7 +112,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } @@ -170,6 +170,7 @@ def _build_schema_on_200(cls): serialized_name="systemData", flags={"read_only": True}, ) + _ListHelper._build_schema_system_data_read(_element.system_data) _element.tags = AAZDictType() _element.type = AAZStrType( flags={"read_only": True}, @@ -183,10 +184,17 @@ def _build_schema_on_200(cls): serialized_name="ipAllowlist", flags={"required": True}, ) + properties.private_endpoint_connections = AAZListType( + serialized_name="privateEndpointConnections", + flags={"read_only": True}, + ) properties.provisioning_state = AAZStrType( serialized_name="provisioningState", flags={"read_only": True}, ) + properties.public_network_access = AAZStrType( + serialized_name="publicNetworkAccess", + ) properties.sku = AAZObjectType( flags={"required": True}, ) @@ -194,34 +202,68 @@ def _build_schema_on_200(cls): ip_allowlist = cls._schema_on_200.value.Element.properties.ip_allowlist ip_allowlist.Element = AAZStrType() - sku = cls._schema_on_200.value.Element.properties.sku - sku.capacity = AAZIntType() - sku.name = AAZStrType( - flags={"required": True}, + private_endpoint_connections = cls._schema_on_200.value.Element.properties.private_endpoint_connections + private_endpoint_connections.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element.properties.private_endpoint_connections.Element + _element.id = AAZStrType( + flags={"read_only": True}, ) - sku.redundancy_state = AAZStrType( - serialized_name="redundancyState", + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _element.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _ListHelper._build_schema_system_data_read(_element.system_data) + _element.type = AAZStrType( flags={"read_only": True}, ) - system_data = cls._schema_on_200.value.Element.system_data - system_data.created_at = AAZStrType( - serialized_name="createdAt", + properties = cls._schema_on_200.value.Element.properties.private_endpoint_connections.Element.properties + properties.group_ids = AAZListType( + serialized_name="groupIds", + flags={"read_only": True}, ) - system_data.created_by = AAZStrType( - serialized_name="createdBy", + properties.private_endpoint = AAZObjectType( + serialized_name="privateEndpoint", ) - system_data.created_by_type = AAZStrType( - serialized_name="createdByType", + properties.private_link_service_connection_state = AAZObjectType( + serialized_name="privateLinkServiceConnectionState", + flags={"required": True}, ) - system_data.last_modified_at = AAZStrType( - serialized_name="lastModifiedAt", + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, ) - system_data.last_modified_by = AAZStrType( - serialized_name="lastModifiedBy", + + group_ids = cls._schema_on_200.value.Element.properties.private_endpoint_connections.Element.properties.group_ids + group_ids.Element = AAZStrType() + + private_endpoint = cls._schema_on_200.value.Element.properties.private_endpoint_connections.Element.properties.private_endpoint + private_endpoint.id = AAZStrType( + flags={"read_only": True}, ) - system_data.last_modified_by_type = AAZStrType( - serialized_name="lastModifiedByType", + + private_link_service_connection_state = cls._schema_on_200.value.Element.properties.private_endpoint_connections.Element.properties.private_link_service_connection_state + private_link_service_connection_state.actions_required = AAZStrType( + serialized_name="actionsRequired", + ) + private_link_service_connection_state.description = AAZStrType() + private_link_service_connection_state.status = AAZStrType() + + sku = cls._schema_on_200.value.Element.properties.sku + sku.capacity = AAZIntType() + sku.name = AAZStrType( + flags={"required": True}, + ) + sku.redundancy_state = AAZStrType( + serialized_name="redundancyState", + flags={"read_only": True}, ) tags = cls._schema_on_200.value.Element.tags @@ -273,7 +315,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } @@ -331,6 +373,7 @@ def _build_schema_on_200(cls): serialized_name="systemData", flags={"read_only": True}, ) + _ListHelper._build_schema_system_data_read(_element.system_data) _element.tags = AAZDictType() _element.type = AAZStrType( flags={"read_only": True}, @@ -344,10 +387,17 @@ def _build_schema_on_200(cls): serialized_name="ipAllowlist", flags={"required": True}, ) + properties.private_endpoint_connections = AAZListType( + serialized_name="privateEndpointConnections", + flags={"read_only": True}, + ) properties.provisioning_state = AAZStrType( serialized_name="provisioningState", flags={"read_only": True}, ) + properties.public_network_access = AAZStrType( + serialized_name="publicNetworkAccess", + ) properties.sku = AAZObjectType( flags={"required": True}, ) @@ -355,34 +405,68 @@ def _build_schema_on_200(cls): ip_allowlist = cls._schema_on_200.value.Element.properties.ip_allowlist ip_allowlist.Element = AAZStrType() - sku = cls._schema_on_200.value.Element.properties.sku - sku.capacity = AAZIntType() - sku.name = AAZStrType( - flags={"required": True}, + private_endpoint_connections = cls._schema_on_200.value.Element.properties.private_endpoint_connections + private_endpoint_connections.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element.properties.private_endpoint_connections.Element + _element.id = AAZStrType( + flags={"read_only": True}, ) - sku.redundancy_state = AAZStrType( - serialized_name="redundancyState", + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _element.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _ListHelper._build_schema_system_data_read(_element.system_data) + _element.type = AAZStrType( flags={"read_only": True}, ) - system_data = cls._schema_on_200.value.Element.system_data - system_data.created_at = AAZStrType( - serialized_name="createdAt", + properties = cls._schema_on_200.value.Element.properties.private_endpoint_connections.Element.properties + properties.group_ids = AAZListType( + serialized_name="groupIds", + flags={"read_only": True}, ) - system_data.created_by = AAZStrType( - serialized_name="createdBy", + properties.private_endpoint = AAZObjectType( + serialized_name="privateEndpoint", ) - system_data.created_by_type = AAZStrType( - serialized_name="createdByType", + properties.private_link_service_connection_state = AAZObjectType( + serialized_name="privateLinkServiceConnectionState", + flags={"required": True}, ) - system_data.last_modified_at = AAZStrType( - serialized_name="lastModifiedAt", + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + + group_ids = cls._schema_on_200.value.Element.properties.private_endpoint_connections.Element.properties.group_ids + group_ids.Element = AAZStrType() + + private_endpoint = cls._schema_on_200.value.Element.properties.private_endpoint_connections.Element.properties.private_endpoint + private_endpoint.id = AAZStrType( + flags={"read_only": True}, ) - system_data.last_modified_by = AAZStrType( - serialized_name="lastModifiedBy", + + private_link_service_connection_state = cls._schema_on_200.value.Element.properties.private_endpoint_connections.Element.properties.private_link_service_connection_state + private_link_service_connection_state.actions_required = AAZStrType( + serialized_name="actionsRequired", + ) + private_link_service_connection_state.description = AAZStrType() + private_link_service_connection_state.status = AAZStrType() + + sku = cls._schema_on_200.value.Element.properties.sku + sku.capacity = AAZIntType() + sku.name = AAZStrType( + flags={"required": True}, ) - system_data.last_modified_by_type = AAZStrType( - serialized_name="lastModifiedByType", + sku.redundancy_state = AAZStrType( + serialized_name="redundancyState", + flags={"read_only": True}, ) tags = cls._schema_on_200.value.Element.tags @@ -394,5 +478,49 @@ def _build_schema_on_200(cls): class _ListHelper: """Helper class for List""" + _schema_system_data_read = None + + @classmethod + def _build_schema_system_data_read(cls, _schema): + if cls._schema_system_data_read is not None: + _schema.created_at = cls._schema_system_data_read.created_at + _schema.created_by = cls._schema_system_data_read.created_by + _schema.created_by_type = cls._schema_system_data_read.created_by_type + _schema.last_modified_at = cls._schema_system_data_read.last_modified_at + _schema.last_modified_by = cls._schema_system_data_read.last_modified_by + _schema.last_modified_by_type = cls._schema_system_data_read.last_modified_by_type + return + + cls._schema_system_data_read = _schema_system_data_read = AAZObjectType( + flags={"read_only": True} + ) + + system_data_read = _schema_system_data_read + system_data_read.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data_read.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data_read.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data_read.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data_read.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data_read.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + _schema.created_at = cls._schema_system_data_read.created_at + _schema.created_by = cls._schema_system_data_read.created_by + _schema.created_by_type = cls._schema_system_data_read.created_by_type + _schema.last_modified_at = cls._schema_system_data_read.last_modified_at + _schema.last_modified_by = cls._schema_system_data_read.last_modified_by + _schema.last_modified_by_type = cls._schema_system_data_read.last_modified_by_type + __all__ = ["List"] diff --git a/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_show.py b/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_show.py index 012bf723e15..992e00bf52a 100644 --- a/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_show.py +++ b/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_show.py @@ -22,9 +22,9 @@ class Show(AAZCommand): """ _aaz_info = { - "version": "2025-11-01", + "version": "2026-02-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}", "2025-11-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}", "2026-02-01"], ] } @@ -123,7 +123,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } @@ -170,6 +170,7 @@ def _build_schema_on_200(cls): serialized_name="systemData", flags={"read_only": True}, ) + _ShowHelper._build_schema_system_data_read(_schema_on_200.system_data) _schema_on_200.tags = AAZDictType() _schema_on_200.type = AAZStrType( flags={"read_only": True}, @@ -183,10 +184,17 @@ def _build_schema_on_200(cls): serialized_name="ipAllowlist", flags={"required": True}, ) + properties.private_endpoint_connections = AAZListType( + serialized_name="privateEndpointConnections", + flags={"read_only": True}, + ) properties.provisioning_state = AAZStrType( serialized_name="provisioningState", flags={"read_only": True}, ) + properties.public_network_access = AAZStrType( + serialized_name="publicNetworkAccess", + ) properties.sku = AAZObjectType( flags={"required": True}, ) @@ -194,34 +202,68 @@ def _build_schema_on_200(cls): ip_allowlist = cls._schema_on_200.properties.ip_allowlist ip_allowlist.Element = AAZStrType() - sku = cls._schema_on_200.properties.sku - sku.capacity = AAZIntType() - sku.name = AAZStrType( - flags={"required": True}, + private_endpoint_connections = cls._schema_on_200.properties.private_endpoint_connections + private_endpoint_connections.Element = AAZObjectType() + + _element = cls._schema_on_200.properties.private_endpoint_connections.Element + _element.id = AAZStrType( + flags={"read_only": True}, ) - sku.redundancy_state = AAZStrType( - serialized_name="redundancyState", + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _element.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _ShowHelper._build_schema_system_data_read(_element.system_data) + _element.type = AAZStrType( flags={"read_only": True}, ) - system_data = cls._schema_on_200.system_data - system_data.created_at = AAZStrType( - serialized_name="createdAt", + properties = cls._schema_on_200.properties.private_endpoint_connections.Element.properties + properties.group_ids = AAZListType( + serialized_name="groupIds", + flags={"read_only": True}, ) - system_data.created_by = AAZStrType( - serialized_name="createdBy", + properties.private_endpoint = AAZObjectType( + serialized_name="privateEndpoint", + ) + properties.private_link_service_connection_state = AAZObjectType( + serialized_name="privateLinkServiceConnectionState", + flags={"required": True}, + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, ) - system_data.created_by_type = AAZStrType( - serialized_name="createdByType", + + group_ids = cls._schema_on_200.properties.private_endpoint_connections.Element.properties.group_ids + group_ids.Element = AAZStrType() + + private_endpoint = cls._schema_on_200.properties.private_endpoint_connections.Element.properties.private_endpoint + private_endpoint.id = AAZStrType( + flags={"read_only": True}, ) - system_data.last_modified_at = AAZStrType( - serialized_name="lastModifiedAt", + + private_link_service_connection_state = cls._schema_on_200.properties.private_endpoint_connections.Element.properties.private_link_service_connection_state + private_link_service_connection_state.actions_required = AAZStrType( + serialized_name="actionsRequired", ) - system_data.last_modified_by = AAZStrType( - serialized_name="lastModifiedBy", + private_link_service_connection_state.description = AAZStrType() + private_link_service_connection_state.status = AAZStrType() + + sku = cls._schema_on_200.properties.sku + sku.capacity = AAZIntType() + sku.name = AAZStrType( + flags={"required": True}, ) - system_data.last_modified_by_type = AAZStrType( - serialized_name="lastModifiedByType", + sku.redundancy_state = AAZStrType( + serialized_name="redundancyState", + flags={"read_only": True}, ) tags = cls._schema_on_200.tags @@ -233,5 +275,49 @@ def _build_schema_on_200(cls): class _ShowHelper: """Helper class for Show""" + _schema_system_data_read = None + + @classmethod + def _build_schema_system_data_read(cls, _schema): + if cls._schema_system_data_read is not None: + _schema.created_at = cls._schema_system_data_read.created_at + _schema.created_by = cls._schema_system_data_read.created_by + _schema.created_by_type = cls._schema_system_data_read.created_by_type + _schema.last_modified_at = cls._schema_system_data_read.last_modified_at + _schema.last_modified_by = cls._schema_system_data_read.last_modified_by + _schema.last_modified_by_type = cls._schema_system_data_read.last_modified_by_type + return + + cls._schema_system_data_read = _schema_system_data_read = AAZObjectType( + flags={"read_only": True} + ) + + system_data_read = _schema_system_data_read + system_data_read.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data_read.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data_read.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data_read.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data_read.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data_read.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + _schema.created_at = cls._schema_system_data_read.created_at + _schema.created_by = cls._schema_system_data_read.created_by + _schema.created_by_type = cls._schema_system_data_read.created_by_type + _schema.last_modified_at = cls._schema_system_data_read.last_modified_at + _schema.last_modified_by = cls._schema_system_data_read.last_modified_by + _schema.last_modified_by_type = cls._schema_system_data_read.last_modified_by_type + __all__ = ["Show"] diff --git a/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_update.py b/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_update.py index 06af64719a1..e142808c239 100644 --- a/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_update.py +++ b/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_update.py @@ -19,9 +19,9 @@ class Update(AAZCommand): """ _aaz_info = { - "version": "2025-11-01", + "version": "2026-02-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}", "2025-11-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}", "2026-02-01"], ] } @@ -65,6 +65,13 @@ def _build_arguments_schema(cls, *args, **kwargs): arg_group="Properties", help="IP allow list for durable task scheduler. Values can be IPv4, IPv6 or CIDR", ) + _args_schema.public_network_access = AAZStrArg( + options=["--public-network-access"], + arg_group="Properties", + help="Allow or disallow public network access to durable task scheduler", + nullable=True, + enum={"Disabled": "Disabled", "Enabled": "Enabled"}, + ) ip_allowlist = cls._args_schema.ip_allowlist ip_allowlist.Element = AAZStrArg( @@ -181,7 +188,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } @@ -280,7 +287,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } @@ -344,6 +351,7 @@ def _update_instance(self, instance): properties = _builder.get(".properties") if properties is not None: properties.set_prop("ipAllowlist", AAZListType, ".ip_allowlist", typ_kwargs={"flags": {"required": True}}) + properties.set_prop("publicNetworkAccess", AAZStrType, ".public_network_access") properties.set_prop("sku", AAZObjectType, ".", typ_kwargs={"flags": {"required": True}}) ip_allowlist = _builder.get(".properties.ipAllowlist") @@ -404,6 +412,7 @@ def _build_schema_scheduler_read(cls, _schema): serialized_name="systemData", flags={"read_only": True}, ) + cls._build_schema_system_data_read(scheduler_read.system_data) scheduler_read.tags = AAZDictType() scheduler_read.type = AAZStrType( flags={"read_only": True}, @@ -417,10 +426,17 @@ def _build_schema_scheduler_read(cls, _schema): serialized_name="ipAllowlist", flags={"required": True}, ) + properties.private_endpoint_connections = AAZListType( + serialized_name="privateEndpointConnections", + flags={"read_only": True}, + ) properties.provisioning_state = AAZStrType( serialized_name="provisioningState", flags={"read_only": True}, ) + properties.public_network_access = AAZStrType( + serialized_name="publicNetworkAccess", + ) properties.sku = AAZObjectType( flags={"required": True}, ) @@ -428,6 +444,60 @@ def _build_schema_scheduler_read(cls, _schema): ip_allowlist = _schema_scheduler_read.properties.ip_allowlist ip_allowlist.Element = AAZStrType() + private_endpoint_connections = _schema_scheduler_read.properties.private_endpoint_connections + private_endpoint_connections.Element = AAZObjectType() + + _element = _schema_scheduler_read.properties.private_endpoint_connections.Element + _element.id = AAZStrType( + flags={"read_only": True}, + ) + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _element.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + cls._build_schema_system_data_read(_element.system_data) + _element.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = _schema_scheduler_read.properties.private_endpoint_connections.Element.properties + properties.group_ids = AAZListType( + serialized_name="groupIds", + flags={"read_only": True}, + ) + properties.private_endpoint = AAZObjectType( + serialized_name="privateEndpoint", + ) + properties.private_link_service_connection_state = AAZObjectType( + serialized_name="privateLinkServiceConnectionState", + flags={"required": True}, + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + + group_ids = _schema_scheduler_read.properties.private_endpoint_connections.Element.properties.group_ids + group_ids.Element = AAZStrType() + + private_endpoint = _schema_scheduler_read.properties.private_endpoint_connections.Element.properties.private_endpoint + private_endpoint.id = AAZStrType( + flags={"read_only": True}, + ) + + private_link_service_connection_state = _schema_scheduler_read.properties.private_endpoint_connections.Element.properties.private_link_service_connection_state + private_link_service_connection_state.actions_required = AAZStrType( + serialized_name="actionsRequired", + ) + private_link_service_connection_state.description = AAZStrType() + private_link_service_connection_state.status = AAZStrType() + sku = _schema_scheduler_read.properties.sku sku.capacity = AAZIntType() sku.name = AAZStrType( @@ -438,36 +508,60 @@ def _build_schema_scheduler_read(cls, _schema): flags={"read_only": True}, ) - system_data = _schema_scheduler_read.system_data - system_data.created_at = AAZStrType( + tags = _schema_scheduler_read.tags + tags.Element = AAZStrType() + + _schema.id = cls._schema_scheduler_read.id + _schema.location = cls._schema_scheduler_read.location + _schema.name = cls._schema_scheduler_read.name + _schema.properties = cls._schema_scheduler_read.properties + _schema.system_data = cls._schema_scheduler_read.system_data + _schema.tags = cls._schema_scheduler_read.tags + _schema.type = cls._schema_scheduler_read.type + + _schema_system_data_read = None + + @classmethod + def _build_schema_system_data_read(cls, _schema): + if cls._schema_system_data_read is not None: + _schema.created_at = cls._schema_system_data_read.created_at + _schema.created_by = cls._schema_system_data_read.created_by + _schema.created_by_type = cls._schema_system_data_read.created_by_type + _schema.last_modified_at = cls._schema_system_data_read.last_modified_at + _schema.last_modified_by = cls._schema_system_data_read.last_modified_by + _schema.last_modified_by_type = cls._schema_system_data_read.last_modified_by_type + return + + cls._schema_system_data_read = _schema_system_data_read = AAZObjectType( + flags={"read_only": True} + ) + + system_data_read = _schema_system_data_read + system_data_read.created_at = AAZStrType( serialized_name="createdAt", ) - system_data.created_by = AAZStrType( + system_data_read.created_by = AAZStrType( serialized_name="createdBy", ) - system_data.created_by_type = AAZStrType( + system_data_read.created_by_type = AAZStrType( serialized_name="createdByType", ) - system_data.last_modified_at = AAZStrType( + system_data_read.last_modified_at = AAZStrType( serialized_name="lastModifiedAt", ) - system_data.last_modified_by = AAZStrType( + system_data_read.last_modified_by = AAZStrType( serialized_name="lastModifiedBy", ) - system_data.last_modified_by_type = AAZStrType( + system_data_read.last_modified_by_type = AAZStrType( serialized_name="lastModifiedByType", ) - tags = _schema_scheduler_read.tags - tags.Element = AAZStrType() - - _schema.id = cls._schema_scheduler_read.id - _schema.location = cls._schema_scheduler_read.location - _schema.name = cls._schema_scheduler_read.name - _schema.properties = cls._schema_scheduler_read.properties - _schema.system_data = cls._schema_scheduler_read.system_data - _schema.tags = cls._schema_scheduler_read.tags - _schema.type = cls._schema_scheduler_read.type + _schema.created_at = cls._schema_system_data_read.created_at + _schema.created_by = cls._schema_system_data_read.created_by + _schema.created_by_type = cls._schema_system_data_read.created_by_type + _schema.last_modified_at = cls._schema_system_data_read.last_modified_at + _schema.last_modified_by = cls._schema_system_data_read.last_modified_by + _schema.last_modified_by_type = cls._schema_system_data_read.last_modified_by_type __all__ = ["Update"] diff --git a/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_wait.py b/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_wait.py index 0effe66e99f..73a336196f4 100644 --- a/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_wait.py +++ b/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_wait.py @@ -20,7 +20,7 @@ class Wait(AAZWaitCommand): _aaz_info = { "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}", "2025-11-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}", "2026-02-01"], ] } @@ -119,7 +119,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } @@ -166,6 +166,7 @@ def _build_schema_on_200(cls): serialized_name="systemData", flags={"read_only": True}, ) + _WaitHelper._build_schema_system_data_read(_schema_on_200.system_data) _schema_on_200.tags = AAZDictType() _schema_on_200.type = AAZStrType( flags={"read_only": True}, @@ -179,10 +180,17 @@ def _build_schema_on_200(cls): serialized_name="ipAllowlist", flags={"required": True}, ) + properties.private_endpoint_connections = AAZListType( + serialized_name="privateEndpointConnections", + flags={"read_only": True}, + ) properties.provisioning_state = AAZStrType( serialized_name="provisioningState", flags={"read_only": True}, ) + properties.public_network_access = AAZStrType( + serialized_name="publicNetworkAccess", + ) properties.sku = AAZObjectType( flags={"required": True}, ) @@ -190,34 +198,68 @@ def _build_schema_on_200(cls): ip_allowlist = cls._schema_on_200.properties.ip_allowlist ip_allowlist.Element = AAZStrType() - sku = cls._schema_on_200.properties.sku - sku.capacity = AAZIntType() - sku.name = AAZStrType( - flags={"required": True}, + private_endpoint_connections = cls._schema_on_200.properties.private_endpoint_connections + private_endpoint_connections.Element = AAZObjectType() + + _element = cls._schema_on_200.properties.private_endpoint_connections.Element + _element.id = AAZStrType( + flags={"read_only": True}, ) - sku.redundancy_state = AAZStrType( - serialized_name="redundancyState", + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _element.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _WaitHelper._build_schema_system_data_read(_element.system_data) + _element.type = AAZStrType( flags={"read_only": True}, ) - system_data = cls._schema_on_200.system_data - system_data.created_at = AAZStrType( - serialized_name="createdAt", + properties = cls._schema_on_200.properties.private_endpoint_connections.Element.properties + properties.group_ids = AAZListType( + serialized_name="groupIds", + flags={"read_only": True}, ) - system_data.created_by = AAZStrType( - serialized_name="createdBy", + properties.private_endpoint = AAZObjectType( + serialized_name="privateEndpoint", + ) + properties.private_link_service_connection_state = AAZObjectType( + serialized_name="privateLinkServiceConnectionState", + flags={"required": True}, + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, ) - system_data.created_by_type = AAZStrType( - serialized_name="createdByType", + + group_ids = cls._schema_on_200.properties.private_endpoint_connections.Element.properties.group_ids + group_ids.Element = AAZStrType() + + private_endpoint = cls._schema_on_200.properties.private_endpoint_connections.Element.properties.private_endpoint + private_endpoint.id = AAZStrType( + flags={"read_only": True}, ) - system_data.last_modified_at = AAZStrType( - serialized_name="lastModifiedAt", + + private_link_service_connection_state = cls._schema_on_200.properties.private_endpoint_connections.Element.properties.private_link_service_connection_state + private_link_service_connection_state.actions_required = AAZStrType( + serialized_name="actionsRequired", ) - system_data.last_modified_by = AAZStrType( - serialized_name="lastModifiedBy", + private_link_service_connection_state.description = AAZStrType() + private_link_service_connection_state.status = AAZStrType() + + sku = cls._schema_on_200.properties.sku + sku.capacity = AAZIntType() + sku.name = AAZStrType( + flags={"required": True}, ) - system_data.last_modified_by_type = AAZStrType( - serialized_name="lastModifiedByType", + sku.redundancy_state = AAZStrType( + serialized_name="redundancyState", + flags={"read_only": True}, ) tags = cls._schema_on_200.tags @@ -229,5 +271,49 @@ def _build_schema_on_200(cls): class _WaitHelper: """Helper class for Wait""" + _schema_system_data_read = None + + @classmethod + def _build_schema_system_data_read(cls, _schema): + if cls._schema_system_data_read is not None: + _schema.created_at = cls._schema_system_data_read.created_at + _schema.created_by = cls._schema_system_data_read.created_by + _schema.created_by_type = cls._schema_system_data_read.created_by_type + _schema.last_modified_at = cls._schema_system_data_read.last_modified_at + _schema.last_modified_by = cls._schema_system_data_read.last_modified_by + _schema.last_modified_by_type = cls._schema_system_data_read.last_modified_by_type + return + + cls._schema_system_data_read = _schema_system_data_read = AAZObjectType( + flags={"read_only": True} + ) + + system_data_read = _schema_system_data_read + system_data_read.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data_read.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data_read.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data_read.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data_read.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data_read.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + _schema.created_at = cls._schema_system_data_read.created_at + _schema.created_by = cls._schema_system_data_read.created_by + _schema.created_by_type = cls._schema_system_data_read.created_by_type + _schema.last_modified_at = cls._schema_system_data_read.last_modified_at + _schema.last_modified_by = cls._schema_system_data_read.last_modified_by + _schema.last_modified_by_type = cls._schema_system_data_read.last_modified_by_type + __all__ = ["Wait"] diff --git a/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_create.py b/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_create.py index f31f8f78537..f24d44f7e88 100644 --- a/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_create.py +++ b/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_create.py @@ -22,9 +22,9 @@ class Create(AAZCommand): """ _aaz_info = { - "version": "2025-11-01", + "version": "2026-02-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/taskhubs/{}", "2025-11-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/taskhubs/{}", "2026-02-01"], ] } @@ -151,7 +151,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } diff --git a/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_delete.py b/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_delete.py index de95c8289e1..644e9a6566a 100644 --- a/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_delete.py +++ b/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_delete.py @@ -23,9 +23,9 @@ class Delete(AAZCommand): """ _aaz_info = { - "version": "2025-11-01", + "version": "2026-02-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/taskhubs/{}", "2025-11-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/taskhubs/{}", "2026-02-01"], ] } @@ -159,7 +159,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } diff --git a/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_list.py b/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_list.py index f33634a7f72..9f980914e07 100644 --- a/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_list.py +++ b/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_list.py @@ -22,9 +22,9 @@ class List(AAZCommand): """ _aaz_info = { - "version": "2025-11-01", + "version": "2026-02-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/taskhubs", "2025-11-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/taskhubs", "2026-02-01"], ] } @@ -124,7 +124,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } diff --git a/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_show.py b/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_show.py index 38676dc4b2d..3b0a24312a6 100644 --- a/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_show.py +++ b/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_show.py @@ -22,9 +22,9 @@ class Show(AAZCommand): """ _aaz_info = { - "version": "2025-11-01", + "version": "2026-02-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/taskhubs/{}", "2025-11-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/taskhubs/{}", "2026-02-01"], ] } @@ -136,7 +136,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } diff --git a/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_update.py b/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_update.py index aa0a71469f8..6387b9476b8 100644 --- a/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_update.py +++ b/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_update.py @@ -16,9 +16,9 @@ class Update(AAZCommand): """ _aaz_info = { - "version": "2025-11-01", + "version": "2026-02-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/taskhubs/{}", "2025-11-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/taskhubs/{}", "2026-02-01"], ] } @@ -146,7 +146,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } @@ -249,7 +249,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } diff --git a/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_wait.py b/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_wait.py index 631d830e656..c0ec14e5ad6 100644 --- a/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_wait.py +++ b/src/durabletask/azext_durabletask/aaz/latest/durabletask/taskhub/_wait.py @@ -20,7 +20,7 @@ class Wait(AAZWaitCommand): _aaz_info = { "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/taskhubs/{}", "2025-11-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}/taskhubs/{}", "2026-02-01"], ] } @@ -132,7 +132,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2025-11-01", + "api-version", "2026-02-01", required=True, ), } diff --git a/src/durabletask/azext_durabletask/commands.py b/src/durabletask/azext_durabletask/commands.py index 2e65e0e527f..4ecab6f6c51 100644 --- a/src/durabletask/azext_durabletask/commands.py +++ b/src/durabletask/azext_durabletask/commands.py @@ -12,6 +12,11 @@ def load_command_table(self, _): # pylint: disable=unused-argument + with self.command_group('durabletask scheduler'): + from .custom import CreateScheduler, UpdateScheduler + self.command_table["durabletask scheduler create"] = CreateScheduler(loader=self) + self.command_table["durabletask scheduler update"] = UpdateScheduler(loader=self) + with self.command_group('durabletask retention-policy'): from .custom import CreatePolicy self.command_table["durabletask retention-policy create"] = CreatePolicy(loader=self) diff --git a/src/durabletask/azext_durabletask/custom.py b/src/durabletask/azext_durabletask/custom.py index af3563019a2..a90fb299dbc 100644 --- a/src/durabletask/azext_durabletask/custom.py +++ b/src/durabletask/azext_durabletask/custom.py @@ -6,7 +6,38 @@ # -------------------------------------------------------------------------------------------- from .aaz.latest.durabletask.retention_policy import Create as _Create +from .aaz.latest.durabletask.scheduler import Create as _SchedulerCreate +from .aaz.latest.durabletask.scheduler import Update as _SchedulerUpdate from azure.cli.core.aaz import AAZStrArg +from azure.cli.core.azclierror import ValidationError + + +class CreateScheduler(_SchedulerCreate): + """Create a Durabletask scheduler.""" + + def pre_operations(self): + """Validate SKU parameters before executing the operation.""" + args = self.ctx.args + + if not args.sku_name or args.sku_name.to_serialized_data() is None: + raise ValidationError("The --sku-name parameter is required.") + + if args.sku_name.to_serialized_data() == "Dedicated": + if not args.sku_capacity or args.sku_capacity.to_serialized_data() is None: + raise ValidationError( + "The --sku-capacity parameter is required when --sku-name is 'Dedicated'." + ) + + +class UpdateScheduler(_SchedulerUpdate): + """Update a Durabletask scheduler.""" + + def post_instance_update(self, instance): + """Remove sku capacity from the payload if it is not set or is 0.""" + sku = instance.properties.sku + capacity = sku.capacity.to_serialized_data() + if capacity is None or capacity == 0: + sku.capacity = None class CreatePolicy(_Create): From f5a5f4bc5e4e2d130676ba04552f6d005eb4b168 Mon Sep 17 00:00:00 2001 From: Bernd Verst Date: Mon, 9 Mar 2026 16:26:06 -0700 Subject: [PATCH 2/5] Add missing example --- .../aaz/latest/durabletask/scheduler/_update.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_update.py b/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_update.py index e142808c239..bfc8f0066ba 100644 --- a/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_update.py +++ b/src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_update.py @@ -16,6 +16,12 @@ ) class Update(AAZCommand): """Update a Scheduler + + :example: Update a scheduler's IP allowlist and tags + az durabletask scheduler update --resource-group testrg --name testscheduler --ip-allowlist "[0.0.0.0/0]" --tags "{department:research}" + + :example: Update a scheduler to disable public network access + az durabletask scheduler update --resource-group testrg --name testscheduler --public-network-access Disabled """ _aaz_info = { From c5368f6ab870c36260f16a7e1dc36cfcb3aee400 Mon Sep 17 00:00:00 2001 From: Bernd Verst Date: Mon, 9 Mar 2026 16:30:41 -0700 Subject: [PATCH 3/5] Update History for 1.0.0b6 --- src/durabletask/HISTORY.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/durabletask/HISTORY.rst b/src/durabletask/HISTORY.rst index 01d39fca06f..ccdca7e6bbd 100644 --- a/src/durabletask/HISTORY.rst +++ b/src/durabletask/HISTORY.rst @@ -3,6 +3,10 @@ Release History =============== +1.0.0b6 +* Update ARM API version to `2026-02-01` +* Scheduler public network access can now be controlled with `--public-network-access` + 1.0.0b5 +++++ * Update ARM API version to first stable release `2025-11-01` @@ -23,4 +27,4 @@ Release History 1.0.0b1 ++++++ -* Initial release. \ No newline at end of file +* Initial release. From 1706f5a345351c5278ad4b1a989a5bde68b5b7be Mon Sep 17 00:00:00 2001 From: Bernd Verst Date: Mon, 9 Mar 2026 16:37:25 -0700 Subject: [PATCH 4/5] Bump version --- src/durabletask/setup.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/durabletask/setup.py b/src/durabletask/setup.py index 86da5ca2db0..f32f653d658 100644 --- a/src/durabletask/setup.py +++ b/src/durabletask/setup.py @@ -10,7 +10,7 @@ # HISTORY.rst entry. -VERSION = '1.0.0b5' +VERSION = '1.0.0b6' # The full list of classifiers is available at # https://pypi.python.org/pypi?%3Aaction=list_classifiers @@ -20,11 +20,11 @@ 'Intended Audience :: System Administrators', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', 'Programming Language :: Python :: 3.13', + 'Programming Language :: Python :: 3.14', 'License :: OSI Approved :: MIT License', ] From ee35bb6878292c47a2d4726de6d7d72f190c0009 Mon Sep 17 00:00:00 2001 From: Bernd Verst Date: Mon, 9 Mar 2026 16:40:02 -0700 Subject: [PATCH 5/5] Fix history format --- src/durabletask/HISTORY.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/src/durabletask/HISTORY.rst b/src/durabletask/HISTORY.rst index ccdca7e6bbd..79b146a51f5 100644 --- a/src/durabletask/HISTORY.rst +++ b/src/durabletask/HISTORY.rst @@ -4,6 +4,7 @@ Release History =============== 1.0.0b6 ++++++ * Update ARM API version to `2026-02-01` * Scheduler public network access can now be controlled with `--public-network-access`