From 95b9a91ab1d87a6ce5e0efa370a136254bef5aa9 Mon Sep 17 00:00:00 2001 From: Zubair Abid Date: Fri, 11 Aug 2023 20:42:30 +0530 Subject: [PATCH] Updated documentation + new API Version --- .../backup_instance/_adhoc_backup.py | 9 +- .../dataprotection/backup_instance/_create.py | 78 +++++++++++- .../dataprotection/backup_instance/_delete.py | 6 +- .../dataprotection/backup_instance/_list.py | 54 +++++++- .../backup_instance/_resume_protection.py | 7 +- .../dataprotection/backup_instance/_show.py | 53 +++++++- .../backup_instance/_stop_protection.py | 7 +- .../backup_instance/_suspend_backup.py | 7 +- .../dataprotection/backup_instance/_update.py | 119 +++++++++++++++++- .../backup_instance/_validate_for_backup.py | 101 ++++++++++++++- .../backup_instance/_validate_for_restore.py | 103 ++++++++++++++- .../dataprotection/backup_instance/_wait.py | 51 +++++++- .../backup_instance/restore/_trigger.py | 79 +++++++++++- .../dataprotection/backup_policy/_create.py | 6 +- .../dataprotection/backup_policy/_delete.py | 6 +- .../dataprotection/backup_policy/_list.py | 6 +- .../dataprotection/backup_policy/_show.py | 6 +- .../dataprotection/backup_policy/_update.py | 12 +- .../dataprotection/backup_vault/_create.py | 32 ++++- .../dataprotection/backup_vault/_delete.py | 6 +- .../dataprotection/backup_vault/_list.py | 62 ++++++++- .../dataprotection/backup_vault/_show.py | 32 ++++- .../dataprotection/backup_vault/_update.py | 34 ++++- .../dataprotection/backup_vault/_wait.py | 30 ++++- .../aaz/latest/dataprotection/job/_list.py | 10 +- .../aaz/latest/dataprotection/job/_show.py | 10 +- .../dataprotection/recovery_point/_list.py | 6 +- .../dataprotection/recovery_point/_show.py | 6 +- .../dataprotection/resource_guard/_create.py | 6 +- .../dataprotection/resource_guard/_delete.py | 6 +- .../dataprotection/resource_guard/_list.py | 10 +- .../dataprotection/resource_guard/_show.py | 6 +- .../dataprotection/resource_guard/_update.py | 8 +- .../restorable_time_range/_find.py | 6 +- 34 files changed, 859 insertions(+), 121 deletions(-) diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_adhoc_backup.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_adhoc_backup.py index 178a1417d66..96af5078727 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_adhoc_backup.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_adhoc_backup.py @@ -18,14 +18,15 @@ class AdhocBackup(AAZCommand): """Trigger adhoc backup. - :example: Trigger Adhoc Backup + :example: Fetch Backup Policy details for rule name and Trigger Adhoc Backup + az dataprotection backup-policy show -g "000pikumar" --vault-name "PratikPrivatePreviewVault1" -n "backupPolicy" az dataprotection backup-instance adhoc-backup --name "testInstance1" --rule-name "BackupWeekly" --retention-tag-override "yearly" --resource-group "000pikumar" --vault-name "PratikPrivatePreviewVault1" """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}/backup", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}/backup", "2023-05-01"], ] } @@ -167,7 +168,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_create.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_create.py index 7baace2ddd2..5eec77400a9 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_create.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_create.py @@ -23,9 +23,9 @@ class Create(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}", "2023-05-01"], ] } @@ -65,6 +65,25 @@ def _build_arguments_schema(cls, *args, **kwargs): # define Arg Group "Properties" return cls._args_schema + _args_base_resource_properties_create = None + + @classmethod + def _build_args_base_resource_properties_create(cls, _schema): + if cls._args_base_resource_properties_create is not None: + _schema.object_type = cls._args_base_resource_properties_create.object_type + return + + cls._args_base_resource_properties_create = AAZObjectArg() + + base_resource_properties_create = cls._args_base_resource_properties_create + base_resource_properties_create.object_type = AAZStrArg( + options=["object-type"], + help="Type of the specific object - used for deserializing", + required=True, + ) + + _schema.object_type = cls._args_base_resource_properties_create.object_type + def _execute_operations(self): self.pre_operations() yield self.BackupInstancesCreateOrUpdate(ctx=self.ctx)() @@ -150,7 +169,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -231,6 +250,9 @@ def _build_schema_on_200_201(cls): properties.friendly_name = AAZStrType( serialized_name="friendlyName", ) + properties.identity_details = AAZObjectType( + serialized_name="identityDetails", + ) properties.object_type = AAZStrType( serialized_name="objectType", flags={"required": True}, @@ -271,6 +293,10 @@ def _build_schema_on_200_201(cls): data_source_info.resource_name = AAZStrType( serialized_name="resourceName", ) + data_source_info.resource_properties = AAZObjectType( + serialized_name="resourceProperties", + ) + _CreateHelper._build_schema_base_resource_properties_read(data_source_info.resource_properties) data_source_info.resource_type = AAZStrType( serialized_name="resourceType", ) @@ -295,6 +321,10 @@ def _build_schema_on_200_201(cls): data_source_set_info.resource_name = AAZStrType( serialized_name="resourceName", ) + data_source_set_info.resource_properties = AAZObjectType( + serialized_name="resourceProperties", + ) + _CreateHelper._build_schema_base_resource_properties_read(data_source_set_info.resource_properties) data_source_set_info.resource_type = AAZStrType( serialized_name="resourceType", ) @@ -321,6 +351,14 @@ def _build_schema_on_200_201(cls): secret_store_resource.uri = AAZStrType() secret_store_resource.value = AAZStrType() + identity_details = cls._schema_on_200_201.properties.identity_details + identity_details.use_system_assigned_identity = AAZBoolType( + serialized_name="useSystemAssignedIdentity", + ) + identity_details.user_assigned_identity_arm_url = AAZStrType( + serialized_name="userAssignedIdentityArmUrl", + ) + policy_info = cls._schema_on_200_201.properties.policy_info policy_info.policy_id = AAZStrType( serialized_name="policyId", @@ -361,6 +399,9 @@ def _build_schema_on_200_201(cls): containers_list.Element = AAZStrType() disc_kubernetes_cluster_backup_datasource_parameters = cls._schema_on_200_201.properties.policy_info.policy_parameters.backup_datasource_parameters_list.Element.discriminate_by("object_type", "KubernetesClusterBackupDatasourceParameters") + disc_kubernetes_cluster_backup_datasource_parameters.backup_hook_references = AAZListType( + serialized_name="backupHookReferences", + ) disc_kubernetes_cluster_backup_datasource_parameters.excluded_namespaces = AAZListType( serialized_name="excludedNamespaces", ) @@ -385,6 +426,13 @@ def _build_schema_on_200_201(cls): flags={"required": True}, ) + backup_hook_references = cls._schema_on_200_201.properties.policy_info.policy_parameters.backup_datasource_parameters_list.Element.discriminate_by("object_type", "KubernetesClusterBackupDatasourceParameters").backup_hook_references + backup_hook_references.Element = AAZObjectType() + + _element = cls._schema_on_200_201.properties.policy_info.policy_parameters.backup_datasource_parameters_list.Element.discriminate_by("object_type", "KubernetesClusterBackupDatasourceParameters").backup_hook_references.Element + _element.name = AAZStrType() + _element.namespace = AAZStrType() + excluded_namespaces = cls._schema_on_200_201.properties.policy_info.policy_parameters.backup_datasource_parameters_list.Element.discriminate_by("object_type", "KubernetesClusterBackupDatasourceParameters").excluded_namespaces excluded_namespaces.Element = AAZStrType() @@ -454,6 +502,30 @@ def _build_schema_on_200_201(cls): class _CreateHelper: """Helper class for Create""" + @classmethod + def _build_schema_base_resource_properties_create(cls, _builder): + if _builder is None: + return + _builder.set_prop("objectType", AAZStrType, ".object_type", typ_kwargs={"flags": {"required": True}}) + + _schema_base_resource_properties_read = None + + @classmethod + def _build_schema_base_resource_properties_read(cls, _schema): + if cls._schema_base_resource_properties_read is not None: + _schema.object_type = cls._schema_base_resource_properties_read.object_type + return + + cls._schema_base_resource_properties_read = _schema_base_resource_properties_read = AAZObjectType() + + base_resource_properties_read = _schema_base_resource_properties_read + base_resource_properties_read.object_type = AAZStrType( + serialized_name="objectType", + flags={"required": True}, + ) + + _schema.object_type = cls._schema_base_resource_properties_read.object_type + _schema_inner_error_read = None @classmethod diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_delete.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_delete.py index 45f3410d1af..ec77d81f3c0 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_delete.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_delete.py @@ -24,9 +24,9 @@ class Delete(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}", "2023-05-01"], ] } @@ -154,7 +154,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_list.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_list.py index 41b7624b156..d49cc43ba91 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_list.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_list.py @@ -23,9 +23,9 @@ class List(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances", "2023-05-01"], ] } @@ -45,7 +45,6 @@ def _build_arguments_schema(cls, *args, **kwargs): _args_schema = cls._args_schema _args_schema.resource_group = AAZResourceGroupNameArg( - help="Name of resource group. You can configure the default group using `az configure --defaults group=`.", required=True, ) _args_schema.vault_name = AAZStrArg( @@ -121,7 +120,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -197,6 +196,9 @@ def _build_schema_on_200(cls): properties.friendly_name = AAZStrType( serialized_name="friendlyName", ) + properties.identity_details = AAZObjectType( + serialized_name="identityDetails", + ) properties.object_type = AAZStrType( serialized_name="objectType", flags={"required": True}, @@ -237,6 +239,10 @@ def _build_schema_on_200(cls): data_source_info.resource_name = AAZStrType( serialized_name="resourceName", ) + data_source_info.resource_properties = AAZObjectType( + serialized_name="resourceProperties", + ) + _ListHelper._build_schema_base_resource_properties_read(data_source_info.resource_properties) data_source_info.resource_type = AAZStrType( serialized_name="resourceType", ) @@ -261,6 +267,10 @@ def _build_schema_on_200(cls): data_source_set_info.resource_name = AAZStrType( serialized_name="resourceName", ) + data_source_set_info.resource_properties = AAZObjectType( + serialized_name="resourceProperties", + ) + _ListHelper._build_schema_base_resource_properties_read(data_source_set_info.resource_properties) data_source_set_info.resource_type = AAZStrType( serialized_name="resourceType", ) @@ -287,6 +297,14 @@ def _build_schema_on_200(cls): secret_store_resource.uri = AAZStrType() secret_store_resource.value = AAZStrType() + identity_details = cls._schema_on_200.value.Element.properties.identity_details + identity_details.use_system_assigned_identity = AAZBoolType( + serialized_name="useSystemAssignedIdentity", + ) + identity_details.user_assigned_identity_arm_url = AAZStrType( + serialized_name="userAssignedIdentityArmUrl", + ) + policy_info = cls._schema_on_200.value.Element.properties.policy_info policy_info.policy_id = AAZStrType( serialized_name="policyId", @@ -327,6 +345,9 @@ def _build_schema_on_200(cls): containers_list.Element = AAZStrType() disc_kubernetes_cluster_backup_datasource_parameters = cls._schema_on_200.value.Element.properties.policy_info.policy_parameters.backup_datasource_parameters_list.Element.discriminate_by("object_type", "KubernetesClusterBackupDatasourceParameters") + disc_kubernetes_cluster_backup_datasource_parameters.backup_hook_references = AAZListType( + serialized_name="backupHookReferences", + ) disc_kubernetes_cluster_backup_datasource_parameters.excluded_namespaces = AAZListType( serialized_name="excludedNamespaces", ) @@ -351,6 +372,13 @@ def _build_schema_on_200(cls): flags={"required": True}, ) + backup_hook_references = cls._schema_on_200.value.Element.properties.policy_info.policy_parameters.backup_datasource_parameters_list.Element.discriminate_by("object_type", "KubernetesClusterBackupDatasourceParameters").backup_hook_references + backup_hook_references.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element.properties.policy_info.policy_parameters.backup_datasource_parameters_list.Element.discriminate_by("object_type", "KubernetesClusterBackupDatasourceParameters").backup_hook_references.Element + _element.name = AAZStrType() + _element.namespace = AAZStrType() + excluded_namespaces = cls._schema_on_200.value.Element.properties.policy_info.policy_parameters.backup_datasource_parameters_list.Element.discriminate_by("object_type", "KubernetesClusterBackupDatasourceParameters").excluded_namespaces excluded_namespaces.Element = AAZStrType() @@ -420,6 +448,24 @@ def _build_schema_on_200(cls): class _ListHelper: """Helper class for List""" + _schema_base_resource_properties_read = None + + @classmethod + def _build_schema_base_resource_properties_read(cls, _schema): + if cls._schema_base_resource_properties_read is not None: + _schema.object_type = cls._schema_base_resource_properties_read.object_type + return + + cls._schema_base_resource_properties_read = _schema_base_resource_properties_read = AAZObjectType() + + base_resource_properties_read = _schema_base_resource_properties_read + base_resource_properties_read.object_type = AAZStrType( + serialized_name="objectType", + flags={"required": True}, + ) + + _schema.object_type = cls._schema_base_resource_properties_read.object_type + _schema_inner_error_read = None @classmethod diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_resume_protection.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_resume_protection.py index b0e7324fb8a..cfa6df519bc 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_resume_protection.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_resume_protection.py @@ -23,9 +23,9 @@ class ResumeProtection(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}/resumeprotection", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}/resumeprotection", "2023-05-01"], ] } @@ -53,7 +53,6 @@ def _build_arguments_schema(cls, *args, **kwargs): id_part="child_name_1", ) _args_schema.resource_group = AAZResourceGroupNameArg( - help="Name of resource group. You can configure the default group using `az configure --defaults group=`.", required=True, ) _args_schema.vault_name = AAZStrArg( @@ -145,7 +144,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_show.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_show.py index e3c395c701d..f655cf95d32 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_show.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_show.py @@ -23,9 +23,9 @@ class Show(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}", "2023-05-01"], ] } @@ -131,7 +131,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -198,6 +198,9 @@ def _build_schema_on_200(cls): properties.friendly_name = AAZStrType( serialized_name="friendlyName", ) + properties.identity_details = AAZObjectType( + serialized_name="identityDetails", + ) properties.object_type = AAZStrType( serialized_name="objectType", flags={"required": True}, @@ -238,6 +241,10 @@ def _build_schema_on_200(cls): data_source_info.resource_name = AAZStrType( serialized_name="resourceName", ) + data_source_info.resource_properties = AAZObjectType( + serialized_name="resourceProperties", + ) + _ShowHelper._build_schema_base_resource_properties_read(data_source_info.resource_properties) data_source_info.resource_type = AAZStrType( serialized_name="resourceType", ) @@ -262,6 +269,10 @@ def _build_schema_on_200(cls): data_source_set_info.resource_name = AAZStrType( serialized_name="resourceName", ) + data_source_set_info.resource_properties = AAZObjectType( + serialized_name="resourceProperties", + ) + _ShowHelper._build_schema_base_resource_properties_read(data_source_set_info.resource_properties) data_source_set_info.resource_type = AAZStrType( serialized_name="resourceType", ) @@ -288,6 +299,14 @@ def _build_schema_on_200(cls): secret_store_resource.uri = AAZStrType() secret_store_resource.value = AAZStrType() + identity_details = cls._schema_on_200.properties.identity_details + identity_details.use_system_assigned_identity = AAZBoolType( + serialized_name="useSystemAssignedIdentity", + ) + identity_details.user_assigned_identity_arm_url = AAZStrType( + serialized_name="userAssignedIdentityArmUrl", + ) + policy_info = cls._schema_on_200.properties.policy_info policy_info.policy_id = AAZStrType( serialized_name="policyId", @@ -328,6 +347,9 @@ def _build_schema_on_200(cls): containers_list.Element = AAZStrType() disc_kubernetes_cluster_backup_datasource_parameters = cls._schema_on_200.properties.policy_info.policy_parameters.backup_datasource_parameters_list.Element.discriminate_by("object_type", "KubernetesClusterBackupDatasourceParameters") + disc_kubernetes_cluster_backup_datasource_parameters.backup_hook_references = AAZListType( + serialized_name="backupHookReferences", + ) disc_kubernetes_cluster_backup_datasource_parameters.excluded_namespaces = AAZListType( serialized_name="excludedNamespaces", ) @@ -352,6 +374,13 @@ def _build_schema_on_200(cls): flags={"required": True}, ) + backup_hook_references = cls._schema_on_200.properties.policy_info.policy_parameters.backup_datasource_parameters_list.Element.discriminate_by("object_type", "KubernetesClusterBackupDatasourceParameters").backup_hook_references + backup_hook_references.Element = AAZObjectType() + + _element = cls._schema_on_200.properties.policy_info.policy_parameters.backup_datasource_parameters_list.Element.discriminate_by("object_type", "KubernetesClusterBackupDatasourceParameters").backup_hook_references.Element + _element.name = AAZStrType() + _element.namespace = AAZStrType() + excluded_namespaces = cls._schema_on_200.properties.policy_info.policy_parameters.backup_datasource_parameters_list.Element.discriminate_by("object_type", "KubernetesClusterBackupDatasourceParameters").excluded_namespaces excluded_namespaces.Element = AAZStrType() @@ -421,6 +450,24 @@ def _build_schema_on_200(cls): class _ShowHelper: """Helper class for Show""" + _schema_base_resource_properties_read = None + + @classmethod + def _build_schema_base_resource_properties_read(cls, _schema): + if cls._schema_base_resource_properties_read is not None: + _schema.object_type = cls._schema_base_resource_properties_read.object_type + return + + cls._schema_base_resource_properties_read = _schema_base_resource_properties_read = AAZObjectType() + + base_resource_properties_read = _schema_base_resource_properties_read + base_resource_properties_read.object_type = AAZStrType( + serialized_name="objectType", + flags={"required": True}, + ) + + _schema.object_type = cls._schema_base_resource_properties_read.object_type + _schema_inner_error_read = None @classmethod diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_stop_protection.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_stop_protection.py index 0dda91c8a81..386a3060c65 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_stop_protection.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_stop_protection.py @@ -23,9 +23,9 @@ class StopProtection(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}/stopprotection", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}/stopprotection", "2023-05-01"], ] } @@ -53,7 +53,6 @@ def _build_arguments_schema(cls, *args, **kwargs): id_part="child_name_1", ) _args_schema.resource_group = AAZResourceGroupNameArg( - help="Name of resource group. You can configure the default group using `az configure --defaults group=`.", required=True, ) _args_schema.vault_name = AAZStrArg( @@ -145,7 +144,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_suspend_backup.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_suspend_backup.py index 184345ea342..d775fc4cf25 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_suspend_backup.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_suspend_backup.py @@ -23,9 +23,9 @@ class SuspendBackup(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}/suspendbackups", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}/suspendbackups", "2023-05-01"], ] } @@ -53,7 +53,6 @@ def _build_arguments_schema(cls, *args, **kwargs): id_part="child_name_1", ) _args_schema.resource_group = AAZResourceGroupNameArg( - help="Name of resource group. You can configure the default group using `az configure --defaults group=`.", required=True, ) _args_schema.vault_name = AAZStrArg( @@ -145,7 +144,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_update.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_update.py index 66291e03b65..569d62feb95 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_update.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_update.py @@ -20,9 +20,9 @@ class Update(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}", "2023-05-01"], ] } @@ -102,6 +102,12 @@ def _build_arguments_schema(cls, *args, **kwargs): help="Gets or sets the Backup Instance friendly name.", nullable=True, ) + _args_schema.identity_details = AAZObjectArg( + options=["--identity-details"], + arg_group="Properties", + help="Contains information of the Identity Details for the BI. If it is null, default will be considered as System Assigned.", + nullable=True, + ) _args_schema.object_type = AAZStrArg( options=["--object-type"], arg_group="Properties", @@ -145,6 +151,12 @@ def _build_arguments_schema(cls, *args, **kwargs): help="Unique identifier of the resource in the context of parent.", nullable=True, ) + data_source_info.resource_properties = AAZObjectArg( + options=["resource-properties"], + help="Properties specific to data source", + nullable=True, + ) + cls._build_args_base_resource_properties_update(data_source_info.resource_properties) data_source_info.resource_type = AAZStrArg( options=["resource-type"], help="Resource Type of Datasource.", @@ -181,6 +193,12 @@ def _build_arguments_schema(cls, *args, **kwargs): help="Unique identifier of the resource in the context of parent.", nullable=True, ) + data_source_set_info.resource_properties = AAZObjectArg( + options=["resource-properties"], + help="Properties specific to data source set", + nullable=True, + ) + cls._build_args_base_resource_properties_update(data_source_set_info.resource_properties) data_source_set_info.resource_type = AAZStrArg( options=["resource-type"], help="Resource Type of Datasource.", @@ -221,12 +239,44 @@ def _build_arguments_schema(cls, *args, **kwargs): nullable=True, ) + identity_details = cls._args_schema.identity_details + identity_details.use_system_assigned_identity = AAZBoolArg( + options=["use-system-assigned-identity"], + help="Specifies if the BI is protected by System Identity.", + nullable=True, + ) + identity_details.user_assigned_identity_arm_url = AAZStrArg( + options=["user-assigned-identity-arm-url"], + help="ARM URL for User Assigned Identity.", + nullable=True, + ) + policy_info = cls._args_schema.policy_info policy_info.policy_id = AAZStrArg( options=["policy-id"], ) return cls._args_schema + _args_base_resource_properties_update = None + + @classmethod + def _build_args_base_resource_properties_update(cls, _schema): + if cls._args_base_resource_properties_update is not None: + _schema.object_type = cls._args_base_resource_properties_update.object_type + return + + cls._args_base_resource_properties_update = AAZObjectArg( + nullable=True, + ) + + base_resource_properties_update = cls._args_base_resource_properties_update + base_resource_properties_update.object_type = AAZStrArg( + options=["object-type"], + help="Type of the specific object - used for deserializing", + ) + + _schema.object_type = cls._args_base_resource_properties_update.object_type + def _execute_operations(self): self.pre_operations() self.BackupInstancesGet(ctx=self.ctx)() @@ -309,7 +359,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -412,7 +462,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -479,6 +529,7 @@ def _update_instance(self, instance): properties.set_prop("dataSourceSetInfo", AAZObjectType, ".data_source_set_info") properties.set_prop("datasourceAuthCredentials", AAZObjectType, ".datasource_auth_credentials") properties.set_prop("friendlyName", AAZStrType, ".friendly_name") + properties.set_prop("identityDetails", AAZObjectType, ".identity_details") properties.set_prop("objectType", AAZStrType, ".object_type", typ_kwargs={"flags": {"required": True}}) properties.set_prop("policyInfo", AAZObjectType, ".policy_info", typ_kwargs={"flags": {"required": True}}) properties.set_prop("validationType", AAZStrType, ".validation_type") @@ -490,6 +541,7 @@ def _update_instance(self, instance): data_source_info.set_prop("resourceID", AAZStrType, ".resource_id", typ_kwargs={"flags": {"required": True}}) data_source_info.set_prop("resourceLocation", AAZStrType, ".resource_location") data_source_info.set_prop("resourceName", AAZStrType, ".resource_name") + _UpdateHelper._build_schema_base_resource_properties_update(data_source_info.set_prop("resourceProperties", AAZObjectType, ".resource_properties")) data_source_info.set_prop("resourceType", AAZStrType, ".resource_type") data_source_info.set_prop("resourceUri", AAZStrType, ".resource_uri") @@ -500,6 +552,7 @@ def _update_instance(self, instance): data_source_set_info.set_prop("resourceID", AAZStrType, ".resource_id", typ_kwargs={"flags": {"required": True}}) data_source_set_info.set_prop("resourceLocation", AAZStrType, ".resource_location") data_source_set_info.set_prop("resourceName", AAZStrType, ".resource_name") + _UpdateHelper._build_schema_base_resource_properties_update(data_source_set_info.set_prop("resourceProperties", AAZObjectType, ".resource_properties")) data_source_set_info.set_prop("resourceType", AAZStrType, ".resource_type") data_source_set_info.set_prop("resourceUri", AAZStrType, ".resource_uri") @@ -518,6 +571,11 @@ def _update_instance(self, instance): secret_store_resource.set_prop("uri", AAZStrType, ".uri") secret_store_resource.set_prop("value", AAZStrType, ".value") + identity_details = _builder.get(".properties.identityDetails") + if identity_details is not None: + identity_details.set_prop("useSystemAssignedIdentity", AAZBoolType, ".use_system_assigned_identity") + identity_details.set_prop("userAssignedIdentityArmUrl", AAZStrType, ".user_assigned_identity_arm_url") + policy_info = _builder.get(".properties.policyInfo") if policy_info is not None: policy_info.set_prop("policyId", AAZStrType, ".policy_id", typ_kwargs={"flags": {"required": True}}) @@ -540,6 +598,12 @@ def __call__(self, *args, **kwargs): class _UpdateHelper: """Helper class for Update""" + @classmethod + def _build_schema_base_resource_properties_update(cls, _builder): + if _builder is None: + return + _builder.set_prop("objectType", AAZStrType, ".object_type", typ_kwargs={"flags": {"required": True}}) + _schema_backup_instance_resource_read = None @classmethod @@ -590,6 +654,9 @@ def _build_schema_backup_instance_resource_read(cls, _schema): properties.friendly_name = AAZStrType( serialized_name="friendlyName", ) + properties.identity_details = AAZObjectType( + serialized_name="identityDetails", + ) properties.object_type = AAZStrType( serialized_name="objectType", flags={"required": True}, @@ -630,6 +697,10 @@ def _build_schema_backup_instance_resource_read(cls, _schema): data_source_info.resource_name = AAZStrType( serialized_name="resourceName", ) + data_source_info.resource_properties = AAZObjectType( + serialized_name="resourceProperties", + ) + cls._build_schema_base_resource_properties_read(data_source_info.resource_properties) data_source_info.resource_type = AAZStrType( serialized_name="resourceType", ) @@ -654,6 +725,10 @@ def _build_schema_backup_instance_resource_read(cls, _schema): data_source_set_info.resource_name = AAZStrType( serialized_name="resourceName", ) + data_source_set_info.resource_properties = AAZObjectType( + serialized_name="resourceProperties", + ) + cls._build_schema_base_resource_properties_read(data_source_set_info.resource_properties) data_source_set_info.resource_type = AAZStrType( serialized_name="resourceType", ) @@ -680,6 +755,14 @@ def _build_schema_backup_instance_resource_read(cls, _schema): secret_store_resource.uri = AAZStrType() secret_store_resource.value = AAZStrType() + identity_details = _schema_backup_instance_resource_read.properties.identity_details + identity_details.use_system_assigned_identity = AAZBoolType( + serialized_name="useSystemAssignedIdentity", + ) + identity_details.user_assigned_identity_arm_url = AAZStrType( + serialized_name="userAssignedIdentityArmUrl", + ) + policy_info = _schema_backup_instance_resource_read.properties.policy_info policy_info.policy_id = AAZStrType( serialized_name="policyId", @@ -720,6 +803,9 @@ def _build_schema_backup_instance_resource_read(cls, _schema): containers_list.Element = AAZStrType() disc_kubernetes_cluster_backup_datasource_parameters = _schema_backup_instance_resource_read.properties.policy_info.policy_parameters.backup_datasource_parameters_list.Element.discriminate_by("object_type", "KubernetesClusterBackupDatasourceParameters") + disc_kubernetes_cluster_backup_datasource_parameters.backup_hook_references = AAZListType( + serialized_name="backupHookReferences", + ) disc_kubernetes_cluster_backup_datasource_parameters.excluded_namespaces = AAZListType( serialized_name="excludedNamespaces", ) @@ -744,6 +830,13 @@ def _build_schema_backup_instance_resource_read(cls, _schema): flags={"required": True}, ) + backup_hook_references = _schema_backup_instance_resource_read.properties.policy_info.policy_parameters.backup_datasource_parameters_list.Element.discriminate_by("object_type", "KubernetesClusterBackupDatasourceParameters").backup_hook_references + backup_hook_references.Element = AAZObjectType() + + _element = _schema_backup_instance_resource_read.properties.policy_info.policy_parameters.backup_datasource_parameters_list.Element.discriminate_by("object_type", "KubernetesClusterBackupDatasourceParameters").backup_hook_references.Element + _element.name = AAZStrType() + _element.namespace = AAZStrType() + excluded_namespaces = _schema_backup_instance_resource_read.properties.policy_info.policy_parameters.backup_datasource_parameters_list.Element.discriminate_by("object_type", "KubernetesClusterBackupDatasourceParameters").excluded_namespaces excluded_namespaces.Element = AAZStrType() @@ -814,6 +907,24 @@ def _build_schema_backup_instance_resource_read(cls, _schema): _schema.tags = cls._schema_backup_instance_resource_read.tags _schema.type = cls._schema_backup_instance_resource_read.type + _schema_base_resource_properties_read = None + + @classmethod + def _build_schema_base_resource_properties_read(cls, _schema): + if cls._schema_base_resource_properties_read is not None: + _schema.object_type = cls._schema_base_resource_properties_read.object_type + return + + cls._schema_base_resource_properties_read = _schema_base_resource_properties_read = AAZObjectType() + + base_resource_properties_read = _schema_base_resource_properties_read + base_resource_properties_read.object_type = AAZStrType( + serialized_name="objectType", + flags={"required": True}, + ) + + _schema.object_type = cls._schema_base_resource_properties_read.object_type + _schema_inner_error_read = None @classmethod diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_validate_for_backup.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_validate_for_backup.py index bd8e7e11dd8..fecc0d9b79f 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_validate_for_backup.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_validate_for_backup.py @@ -16,16 +16,16 @@ is_experimental=True, ) class ValidateForBackup(AAZCommand): - """Validate whether configure backup will be successful or not. + """Validate whether adhoc backup will be successful or not - :example: Validate for backup - az dataprotection backup-instance validate-for-backup -g sarath-rg --vault-name sarath-vault --backup-instance backup_instance.json + :example: Validate Backup + az dataprotection backup-instance validate-for-backup -g sample_rg --vault-name sample_backupvault --backup-instance backup_instance.json """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/validateforbackup", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/validateforbackup", "2023-05-01"], ] } @@ -55,8 +55,13 @@ def _build_arguments_schema(cls, *args, **kwargs): required=True, id_part="name", ) + + # define Arg Group "Parameters" + + _args_schema = cls._args_schema _args_schema.backup_instance = AAZObjectArg( options=["--backup-instance"], + arg_group="Parameters", help="Backup Instance", required=True, ) @@ -79,6 +84,10 @@ def _build_arguments_schema(cls, *args, **kwargs): options=["friendly-name"], help="Gets or sets the Backup Instance friendly name.", ) + backup_instance.identity_details = AAZObjectArg( + options=["identity-details"], + help="Contains information of the Identity Details for the BI. If it is null, default will be considered as System Assigned.", + ) backup_instance.object_type = AAZStrArg( options=["object-type"], required=True, @@ -116,6 +125,11 @@ def _build_arguments_schema(cls, *args, **kwargs): options=["resource-name"], help="Unique identifier of the resource in the context of parent.", ) + data_source_info.resource_properties = AAZObjectArg( + options=["resource-properties"], + help="Properties specific to data source", + ) + cls._build_args_base_resource_properties_create(data_source_info.resource_properties) data_source_info.resource_type = AAZStrArg( options=["resource-type"], help="Resource Type of Datasource.", @@ -147,6 +161,11 @@ def _build_arguments_schema(cls, *args, **kwargs): options=["resource-name"], help="Unique identifier of the resource in the context of parent.", ) + data_source_set_info.resource_properties = AAZObjectArg( + options=["resource-properties"], + help="Properties specific to data source set", + ) + cls._build_args_base_resource_properties_create(data_source_set_info.resource_properties) data_source_set_info.resource_type = AAZStrArg( options=["resource-type"], help="Resource Type of Datasource.", @@ -183,6 +202,16 @@ def _build_arguments_schema(cls, *args, **kwargs): help="Gets or sets value stored in secret store resource", ) + identity_details = cls._args_schema.backup_instance.identity_details + identity_details.use_system_assigned_identity = AAZBoolArg( + options=["use-system-assigned-identity"], + help="Specifies if the BI is protected by System Identity.", + ) + identity_details.user_assigned_identity_arm_url = AAZStrArg( + options=["user-assigned-identity-arm-url"], + help="ARM URL for User Assigned Identity.", + ) + policy_info = cls._args_schema.backup_instance.policy_info policy_info.policy_id = AAZStrArg( options=["policy-id"], @@ -225,6 +254,10 @@ def _build_arguments_schema(cls, *args, **kwargs): containers_list.Element = AAZStrArg() kubernetes_cluster_backup_datasource_parameters = cls._args_schema.backup_instance.policy_info.policy_parameters.backup_datasource_parameters_list.Element.kubernetes_cluster_backup_datasource_parameters + kubernetes_cluster_backup_datasource_parameters.backup_hook_references = AAZListArg( + options=["backup-hook-references"], + help="Gets or sets the backup hook references. This property sets the hook reference to be executed during backup.", + ) kubernetes_cluster_backup_datasource_parameters.excluded_namespaces = AAZListArg( options=["excluded-namespaces"], help="Gets or sets the exclude namespaces property. This property sets the namespaces to be excluded during restore.", @@ -256,6 +289,19 @@ def _build_arguments_schema(cls, *args, **kwargs): required=True, ) + backup_hook_references = cls._args_schema.backup_instance.policy_info.policy_parameters.backup_datasource_parameters_list.Element.kubernetes_cluster_backup_datasource_parameters.backup_hook_references + backup_hook_references.Element = AAZObjectArg() + + _element = cls._args_schema.backup_instance.policy_info.policy_parameters.backup_datasource_parameters_list.Element.kubernetes_cluster_backup_datasource_parameters.backup_hook_references.Element + _element.name = AAZStrArg( + options=["name"], + help="Name of the resource", + ) + _element.namespace = AAZStrArg( + options=["namespace"], + help="Namespace in which the resource exists", + ) + excluded_namespaces = cls._args_schema.backup_instance.policy_info.policy_parameters.backup_datasource_parameters_list.Element.kubernetes_cluster_backup_datasource_parameters.excluded_namespaces excluded_namespaces.Element = AAZStrArg() @@ -292,6 +338,25 @@ def _build_arguments_schema(cls, *args, **kwargs): ) return cls._args_schema + _args_base_resource_properties_create = None + + @classmethod + def _build_args_base_resource_properties_create(cls, _schema): + if cls._args_base_resource_properties_create is not None: + _schema.object_type = cls._args_base_resource_properties_create.object_type + return + + cls._args_base_resource_properties_create = AAZObjectArg() + + base_resource_properties_create = cls._args_base_resource_properties_create + base_resource_properties_create.object_type = AAZStrArg( + options=["object-type"], + help="Type of the specific object - used for deserializing", + required=True, + ) + + _schema.object_type = cls._args_base_resource_properties_create.object_type + def _execute_operations(self): self.pre_operations() yield self.BackupInstancesValidateForBackup(ctx=self.ctx)() @@ -373,7 +438,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -406,6 +471,7 @@ def content(self): backup_instance.set_prop("dataSourceSetInfo", AAZObjectType, ".data_source_set_info") backup_instance.set_prop("datasourceAuthCredentials", AAZObjectType, ".datasource_auth_credentials") backup_instance.set_prop("friendlyName", AAZStrType, ".friendly_name") + backup_instance.set_prop("identityDetails", AAZObjectType, ".identity_details") backup_instance.set_prop("objectType", AAZStrType, ".object_type", typ_kwargs={"flags": {"required": True}}) backup_instance.set_prop("policyInfo", AAZObjectType, ".policy_info", typ_kwargs={"flags": {"required": True}}) backup_instance.set_prop("validationType", AAZStrType, ".validation_type") @@ -417,6 +483,7 @@ def content(self): data_source_info.set_prop("resourceID", AAZStrType, ".resource_id", typ_kwargs={"flags": {"required": True}}) data_source_info.set_prop("resourceLocation", AAZStrType, ".resource_location") data_source_info.set_prop("resourceName", AAZStrType, ".resource_name") + _ValidateForBackupHelper._build_schema_base_resource_properties_create(data_source_info.set_prop("resourceProperties", AAZObjectType, ".resource_properties")) data_source_info.set_prop("resourceType", AAZStrType, ".resource_type") data_source_info.set_prop("resourceUri", AAZStrType, ".resource_uri") @@ -427,6 +494,7 @@ def content(self): data_source_set_info.set_prop("resourceID", AAZStrType, ".resource_id", typ_kwargs={"flags": {"required": True}}) data_source_set_info.set_prop("resourceLocation", AAZStrType, ".resource_location") data_source_set_info.set_prop("resourceName", AAZStrType, ".resource_name") + _ValidateForBackupHelper._build_schema_base_resource_properties_create(data_source_set_info.set_prop("resourceProperties", AAZObjectType, ".resource_properties")) data_source_set_info.set_prop("resourceType", AAZStrType, ".resource_type") data_source_set_info.set_prop("resourceUri", AAZStrType, ".resource_uri") @@ -445,6 +513,11 @@ def content(self): secret_store_resource.set_prop("uri", AAZStrType, ".uri") secret_store_resource.set_prop("value", AAZStrType, ".value") + identity_details = _builder.get(".backupInstance.identityDetails") + if identity_details is not None: + identity_details.set_prop("useSystemAssignedIdentity", AAZBoolType, ".use_system_assigned_identity") + identity_details.set_prop("userAssignedIdentityArmUrl", AAZStrType, ".user_assigned_identity_arm_url") + policy_info = _builder.get(".backupInstance.policyInfo") if policy_info is not None: policy_info.set_prop("policyId", AAZStrType, ".policy_id", typ_kwargs={"flags": {"required": True}}) @@ -476,6 +549,7 @@ def content(self): disc_kubernetes_cluster_backup_datasource_parameters = _builder.get(".backupInstance.policyInfo.policyParameters.backupDatasourceParametersList[]{objectType:KubernetesClusterBackupDatasourceParameters}") if disc_kubernetes_cluster_backup_datasource_parameters is not None: + disc_kubernetes_cluster_backup_datasource_parameters.set_prop("backupHookReferences", AAZListType, ".kubernetes_cluster_backup_datasource_parameters.backup_hook_references") disc_kubernetes_cluster_backup_datasource_parameters.set_prop("excludedNamespaces", AAZListType, ".kubernetes_cluster_backup_datasource_parameters.excluded_namespaces") disc_kubernetes_cluster_backup_datasource_parameters.set_prop("excludedResourceTypes", AAZListType, ".kubernetes_cluster_backup_datasource_parameters.excluded_resource_types") disc_kubernetes_cluster_backup_datasource_parameters.set_prop("includeClusterScopeResources", AAZBoolType, ".kubernetes_cluster_backup_datasource_parameters.include_cluster_scope_resources", typ_kwargs={"flags": {"required": True}}) @@ -484,6 +558,15 @@ def content(self): disc_kubernetes_cluster_backup_datasource_parameters.set_prop("labelSelectors", AAZListType, ".kubernetes_cluster_backup_datasource_parameters.label_selectors") disc_kubernetes_cluster_backup_datasource_parameters.set_prop("snapshotVolumes", AAZBoolType, ".kubernetes_cluster_backup_datasource_parameters.snapshot_volumes", typ_kwargs={"flags": {"required": True}}) + backup_hook_references = _builder.get(".backupInstance.policyInfo.policyParameters.backupDatasourceParametersList[]{objectType:KubernetesClusterBackupDatasourceParameters}.backupHookReferences") + if backup_hook_references is not None: + backup_hook_references.set_elements(AAZObjectType, ".") + + _elements = _builder.get(".backupInstance.policyInfo.policyParameters.backupDatasourceParametersList[]{objectType:KubernetesClusterBackupDatasourceParameters}.backupHookReferences[]") + if _elements is not None: + _elements.set_prop("name", AAZStrType, ".name") + _elements.set_prop("namespace", AAZStrType, ".namespace") + excluded_namespaces = _builder.get(".backupInstance.policyInfo.policyParameters.backupDatasourceParametersList[]{objectType:KubernetesClusterBackupDatasourceParameters}.excludedNamespaces") if excluded_namespaces is not None: excluded_namespaces.set_elements(AAZStrType, ".") @@ -552,5 +635,11 @@ def _build_schema_on_200(cls): class _ValidateForBackupHelper: """Helper class for ValidateForBackup""" + @classmethod + def _build_schema_base_resource_properties_create(cls, _builder): + if _builder is None: + return + _builder.set_prop("objectType", AAZStrType, ".object_type", typ_kwargs={"flags": {"required": True}}) + __all__ = ["ValidateForBackup"] diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_validate_for_restore.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_validate_for_restore.py index 36f37839a0a..ebba6ef7412 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_validate_for_restore.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_validate_for_restore.py @@ -16,16 +16,16 @@ is_experimental=True, ) class ValidateForRestore(AAZCommand): - """Validates if restore can be triggered for a datasource + """Validates if Restore can be triggered for a DataSource :example: Validate Restore - az az dataprotection backup-instance validate-for-restore --name "testInstance1" --restore-request-object "restoreRequest.json" --resource-group "000pikumar" --vault-name "PratikPrivatePreviewVault1" + az dataprotection backup-instance validate-for-restore-g sample_rg --vault-name sample_backupvault --backup-instance-name sample_biname-fd53a211-3f3e-4c7e-ba45-81050e27c0be --restore-request-object restorerequestobject.json """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}/validaterestore", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}/validaterestore", "2023-05-01"], ] } @@ -61,8 +61,13 @@ def _build_arguments_schema(cls, *args, **kwargs): required=True, id_part="name", ) + + # define Arg Group "Parameters" + + _args_schema = cls._args_schema _args_schema.restore_request_object = AAZObjectArg( options=["--restore-request-object"], + arg_group="Parameters", help="Gets or sets the restore request object.", required=True, ) @@ -77,6 +82,10 @@ def _build_arguments_schema(cls, *args, **kwargs): restore_request_object.azure_backup_restore_with_rehydration_request = AAZObjectArg( options=["azure-backup-restore-with-rehydration-request"], ) + restore_request_object.identity_details = AAZObjectArg( + options=["identity-details"], + help="Contains information of the Identity Details for the BI. If it is null, default will be considered as System Assigned.", + ) restore_request_object.restore_target_info = AAZObjectArg( options=["restore-target-info"], help="Gets or sets the restore target information.", @@ -123,6 +132,16 @@ def _build_arguments_schema(cls, *args, **kwargs): required=True, ) + identity_details = cls._args_schema.restore_request_object.identity_details + identity_details.use_system_assigned_identity = AAZBoolArg( + options=["use-system-assigned-identity"], + help="Specifies if the BI is protected by System Identity.", + ) + identity_details.user_assigned_identity_arm_url = AAZStrArg( + options=["user-assigned-identity-arm-url"], + help="ARM URL for User Assigned Identity.", + ) + restore_target_info = cls._args_schema.restore_request_object.restore_target_info restore_target_info.item_level_restore_target_info = AAZObjectArg( options=["item-level-restore-target-info"], @@ -246,6 +265,10 @@ def _build_arguments_schema(cls, *args, **kwargs): help="Gets or sets the PV (Persistent Volume) Restore Mode property. This property sets whether volumes needs to be restored.", enum={"RestoreWithVolumeData": "RestoreWithVolumeData", "RestoreWithoutVolumeData": "RestoreWithoutVolumeData"}, ) + kubernetes_cluster_restore_criteria.restore_hook_references = AAZListArg( + options=["restore-hook-references"], + help="Gets or sets the restore hook references. This property sets the hook reference to be executed during restore.", + ) excluded_namespaces = cls._args_schema.restore_request_object.restore_target_info.item_level_restore_target_info.restore_criteria.Element.kubernetes_cluster_restore_criteria.excluded_namespaces excluded_namespaces.Element = AAZStrArg() @@ -265,6 +288,19 @@ def _build_arguments_schema(cls, *args, **kwargs): namespace_mappings = cls._args_schema.restore_request_object.restore_target_info.item_level_restore_target_info.restore_criteria.Element.kubernetes_cluster_restore_criteria.namespace_mappings namespace_mappings.Element = AAZStrArg() + restore_hook_references = cls._args_schema.restore_request_object.restore_target_info.item_level_restore_target_info.restore_criteria.Element.kubernetes_cluster_restore_criteria.restore_hook_references + restore_hook_references.Element = AAZObjectArg() + + _element = cls._args_schema.restore_request_object.restore_target_info.item_level_restore_target_info.restore_criteria.Element.kubernetes_cluster_restore_criteria.restore_hook_references.Element + _element.name = AAZStrArg( + options=["name"], + help="Name of the resource", + ) + _element.namespace = AAZStrArg( + options=["namespace"], + help="Namespace in which the resource exists", + ) + kubernetes_pv_restore_criteria = cls._args_schema.restore_request_object.restore_target_info.item_level_restore_target_info.restore_criteria.Element.kubernetes_pv_restore_criteria kubernetes_pv_restore_criteria.name = AAZStrArg( options=["name"], @@ -382,6 +418,25 @@ def _build_args_auth_credentials_create(cls, _schema): _schema.secret_store_based_auth_credentials = cls._args_auth_credentials_create.secret_store_based_auth_credentials + _args_base_resource_properties_create = None + + @classmethod + def _build_args_base_resource_properties_create(cls, _schema): + if cls._args_base_resource_properties_create is not None: + _schema.object_type = cls._args_base_resource_properties_create.object_type + return + + cls._args_base_resource_properties_create = AAZObjectArg() + + base_resource_properties_create = cls._args_base_resource_properties_create + base_resource_properties_create.object_type = AAZStrArg( + options=["object-type"], + help="Type of the specific object - used for deserializing", + required=True, + ) + + _schema.object_type = cls._args_base_resource_properties_create.object_type + _args_datasource_set_create = None @classmethod @@ -392,6 +447,7 @@ def _build_args_datasource_set_create(cls, _schema): _schema.resource_id = cls._args_datasource_set_create.resource_id _schema.resource_location = cls._args_datasource_set_create.resource_location _schema.resource_name = cls._args_datasource_set_create.resource_name + _schema.resource_properties = cls._args_datasource_set_create.resource_properties _schema.resource_type = cls._args_datasource_set_create.resource_type _schema.resource_uri = cls._args_datasource_set_create.resource_uri return @@ -420,6 +476,11 @@ def _build_args_datasource_set_create(cls, _schema): options=["resource-name"], help="Unique identifier of the resource in the context of parent.", ) + datasource_set_create.resource_properties = AAZObjectArg( + options=["resource-properties"], + help="Properties specific to data source set", + ) + cls._build_args_base_resource_properties_create(datasource_set_create.resource_properties) datasource_set_create.resource_type = AAZStrArg( options=["resource-type"], help="Resource Type of Datasource.", @@ -434,6 +495,7 @@ def _build_args_datasource_set_create(cls, _schema): _schema.resource_id = cls._args_datasource_set_create.resource_id _schema.resource_location = cls._args_datasource_set_create.resource_location _schema.resource_name = cls._args_datasource_set_create.resource_name + _schema.resource_properties = cls._args_datasource_set_create.resource_properties _schema.resource_type = cls._args_datasource_set_create.resource_type _schema.resource_uri = cls._args_datasource_set_create.resource_uri @@ -447,6 +509,7 @@ def _build_args_datasource_create(cls, _schema): _schema.resource_id = cls._args_datasource_create.resource_id _schema.resource_location = cls._args_datasource_create.resource_location _schema.resource_name = cls._args_datasource_create.resource_name + _schema.resource_properties = cls._args_datasource_create.resource_properties _schema.resource_type = cls._args_datasource_create.resource_type _schema.resource_uri = cls._args_datasource_create.resource_uri return @@ -475,6 +538,11 @@ def _build_args_datasource_create(cls, _schema): options=["resource-name"], help="Unique identifier of the resource in the context of parent.", ) + datasource_create.resource_properties = AAZObjectArg( + options=["resource-properties"], + help="Properties specific to data source", + ) + cls._build_args_base_resource_properties_create(datasource_create.resource_properties) datasource_create.resource_type = AAZStrArg( options=["resource-type"], help="Resource Type of Datasource.", @@ -489,6 +557,7 @@ def _build_args_datasource_create(cls, _schema): _schema.resource_id = cls._args_datasource_create.resource_id _schema.resource_location = cls._args_datasource_create.resource_location _schema.resource_name = cls._args_datasource_create.resource_name + _schema.resource_properties = cls._args_datasource_create.resource_properties _schema.resource_type = cls._args_datasource_create.resource_type _schema.resource_uri = cls._args_datasource_create.resource_uri @@ -577,7 +646,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -606,6 +675,7 @@ def content(self): restore_request_object = _builder.get(".restoreRequestObject") if restore_request_object is not None: + restore_request_object.set_prop("identityDetails", AAZObjectType, ".identity_details") restore_request_object.set_const("objectType", "AzureBackupRecoveryPointBasedRestoreRequest", AAZStrType, ".azure_backup_recovery_point_based_restore_request", typ_kwargs={"flags": {"required": True}}) restore_request_object.set_const("objectType", "AzureBackupRecoveryTimeBasedRestoreRequest", AAZStrType, ".azure_backup_recovery_time_based_restore_request", typ_kwargs={"flags": {"required": True}}) restore_request_object.set_const("objectType", "AzureBackupRestoreWithRehydrationRequest", AAZStrType, ".azure_backup_restore_with_rehydration_request", typ_kwargs={"flags": {"required": True}}) @@ -616,6 +686,11 @@ def content(self): restore_request_object.discriminate_by("objectType", "AzureBackupRecoveryTimeBasedRestoreRequest") restore_request_object.discriminate_by("objectType", "AzureBackupRestoreWithRehydrationRequest") + identity_details = _builder.get(".restoreRequestObject.identityDetails") + if identity_details is not None: + identity_details.set_prop("useSystemAssignedIdentity", AAZBoolType, ".use_system_assigned_identity") + identity_details.set_prop("userAssignedIdentityArmUrl", AAZStrType, ".user_assigned_identity_arm_url") + restore_target_info = _builder.get(".restoreRequestObject.restoreTargetInfo") if restore_target_info is not None: restore_target_info.set_const("objectType", "ItemLevelRestoreTargetInfo", AAZStrType, ".item_level_restore_target_info", typ_kwargs={"flags": {"required": True}}) @@ -672,6 +747,7 @@ def content(self): disc_kubernetes_cluster_restore_criteria.set_prop("labelSelectors", AAZListType, ".kubernetes_cluster_restore_criteria.label_selectors") disc_kubernetes_cluster_restore_criteria.set_prop("namespaceMappings", AAZDictType, ".kubernetes_cluster_restore_criteria.namespace_mappings") disc_kubernetes_cluster_restore_criteria.set_prop("persistentVolumeRestoreMode", AAZStrType, ".kubernetes_cluster_restore_criteria.persistent_volume_restore_mode") + disc_kubernetes_cluster_restore_criteria.set_prop("restoreHookReferences", AAZListType, ".kubernetes_cluster_restore_criteria.restore_hook_references") excluded_namespaces = _builder.get(".restoreRequestObject.restoreTargetInfo{objectType:ItemLevelRestoreTargetInfo}.restoreCriteria[]{objectType:KubernetesClusterRestoreCriteria}.excludedNamespaces") if excluded_namespaces is not None: @@ -697,6 +773,15 @@ def content(self): if namespace_mappings is not None: namespace_mappings.set_elements(AAZStrType, ".") + restore_hook_references = _builder.get(".restoreRequestObject.restoreTargetInfo{objectType:ItemLevelRestoreTargetInfo}.restoreCriteria[]{objectType:KubernetesClusterRestoreCriteria}.restoreHookReferences") + if restore_hook_references is not None: + restore_hook_references.set_elements(AAZObjectType, ".") + + _elements = _builder.get(".restoreRequestObject.restoreTargetInfo{objectType:ItemLevelRestoreTargetInfo}.restoreCriteria[]{objectType:KubernetesClusterRestoreCriteria}.restoreHookReferences[]") + if _elements is not None: + _elements.set_prop("name", AAZStrType, ".name") + _elements.set_prop("namespace", AAZStrType, ".namespace") + disc_kubernetes_pv_restore_criteria = _builder.get(".restoreRequestObject.restoreTargetInfo{objectType:ItemLevelRestoreTargetInfo}.restoreCriteria[]{objectType:KubernetesPVRestoreCriteria}") if disc_kubernetes_pv_restore_criteria is not None: disc_kubernetes_pv_restore_criteria.set_prop("name", AAZStrType, ".kubernetes_pv_restore_criteria.name") @@ -794,6 +879,12 @@ def _build_schema_auth_credentials_create(cls, _builder): secret_store_resource.set_prop("uri", AAZStrType, ".uri") secret_store_resource.set_prop("value", AAZStrType, ".value") + @classmethod + def _build_schema_base_resource_properties_create(cls, _builder): + if _builder is None: + return + _builder.set_prop("objectType", AAZStrType, ".object_type", typ_kwargs={"flags": {"required": True}}) + @classmethod def _build_schema_datasource_set_create(cls, _builder): if _builder is None: @@ -803,6 +894,7 @@ def _build_schema_datasource_set_create(cls, _builder): _builder.set_prop("resourceID", AAZStrType, ".resource_id", typ_kwargs={"flags": {"required": True}}) _builder.set_prop("resourceLocation", AAZStrType, ".resource_location") _builder.set_prop("resourceName", AAZStrType, ".resource_name") + cls._build_schema_base_resource_properties_create(_builder.set_prop("resourceProperties", AAZObjectType, ".resource_properties")) _builder.set_prop("resourceType", AAZStrType, ".resource_type") _builder.set_prop("resourceUri", AAZStrType, ".resource_uri") @@ -815,6 +907,7 @@ def _build_schema_datasource_create(cls, _builder): _builder.set_prop("resourceID", AAZStrType, ".resource_id", typ_kwargs={"flags": {"required": True}}) _builder.set_prop("resourceLocation", AAZStrType, ".resource_location") _builder.set_prop("resourceName", AAZStrType, ".resource_name") + cls._build_schema_base_resource_properties_create(_builder.set_prop("resourceProperties", AAZObjectType, ".resource_properties")) _builder.set_prop("resourceType", AAZStrType, ".resource_type") _builder.set_prop("resourceUri", AAZStrType, ".resource_uri") diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_wait.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_wait.py index 11f2dcddc04..3e036a44fc7 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_wait.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_wait.py @@ -20,7 +20,7 @@ class Wait(AAZWaitCommand): _aaz_info = { "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}", "2023-05-01"], ] } @@ -126,7 +126,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -193,6 +193,9 @@ def _build_schema_on_200(cls): properties.friendly_name = AAZStrType( serialized_name="friendlyName", ) + properties.identity_details = AAZObjectType( + serialized_name="identityDetails", + ) properties.object_type = AAZStrType( serialized_name="objectType", flags={"required": True}, @@ -233,6 +236,10 @@ def _build_schema_on_200(cls): data_source_info.resource_name = AAZStrType( serialized_name="resourceName", ) + data_source_info.resource_properties = AAZObjectType( + serialized_name="resourceProperties", + ) + _WaitHelper._build_schema_base_resource_properties_read(data_source_info.resource_properties) data_source_info.resource_type = AAZStrType( serialized_name="resourceType", ) @@ -257,6 +264,10 @@ def _build_schema_on_200(cls): data_source_set_info.resource_name = AAZStrType( serialized_name="resourceName", ) + data_source_set_info.resource_properties = AAZObjectType( + serialized_name="resourceProperties", + ) + _WaitHelper._build_schema_base_resource_properties_read(data_source_set_info.resource_properties) data_source_set_info.resource_type = AAZStrType( serialized_name="resourceType", ) @@ -283,6 +294,14 @@ def _build_schema_on_200(cls): secret_store_resource.uri = AAZStrType() secret_store_resource.value = AAZStrType() + identity_details = cls._schema_on_200.properties.identity_details + identity_details.use_system_assigned_identity = AAZBoolType( + serialized_name="useSystemAssignedIdentity", + ) + identity_details.user_assigned_identity_arm_url = AAZStrType( + serialized_name="userAssignedIdentityArmUrl", + ) + policy_info = cls._schema_on_200.properties.policy_info policy_info.policy_id = AAZStrType( serialized_name="policyId", @@ -323,6 +342,9 @@ def _build_schema_on_200(cls): containers_list.Element = AAZStrType() disc_kubernetes_cluster_backup_datasource_parameters = cls._schema_on_200.properties.policy_info.policy_parameters.backup_datasource_parameters_list.Element.discriminate_by("object_type", "KubernetesClusterBackupDatasourceParameters") + disc_kubernetes_cluster_backup_datasource_parameters.backup_hook_references = AAZListType( + serialized_name="backupHookReferences", + ) disc_kubernetes_cluster_backup_datasource_parameters.excluded_namespaces = AAZListType( serialized_name="excludedNamespaces", ) @@ -347,6 +369,13 @@ def _build_schema_on_200(cls): flags={"required": True}, ) + backup_hook_references = cls._schema_on_200.properties.policy_info.policy_parameters.backup_datasource_parameters_list.Element.discriminate_by("object_type", "KubernetesClusterBackupDatasourceParameters").backup_hook_references + backup_hook_references.Element = AAZObjectType() + + _element = cls._schema_on_200.properties.policy_info.policy_parameters.backup_datasource_parameters_list.Element.discriminate_by("object_type", "KubernetesClusterBackupDatasourceParameters").backup_hook_references.Element + _element.name = AAZStrType() + _element.namespace = AAZStrType() + excluded_namespaces = cls._schema_on_200.properties.policy_info.policy_parameters.backup_datasource_parameters_list.Element.discriminate_by("object_type", "KubernetesClusterBackupDatasourceParameters").excluded_namespaces excluded_namespaces.Element = AAZStrType() @@ -416,6 +445,24 @@ def _build_schema_on_200(cls): class _WaitHelper: """Helper class for Wait""" + _schema_base_resource_properties_read = None + + @classmethod + def _build_schema_base_resource_properties_read(cls, _schema): + if cls._schema_base_resource_properties_read is not None: + _schema.object_type = cls._schema_base_resource_properties_read.object_type + return + + cls._schema_base_resource_properties_read = _schema_base_resource_properties_read = AAZObjectType() + + base_resource_properties_read = _schema_base_resource_properties_read + base_resource_properties_read.object_type = AAZStrType( + serialized_name="objectType", + flags={"required": True}, + ) + + _schema.object_type = cls._schema_base_resource_properties_read.object_type + _schema_inner_error_read = None @classmethod diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/restore/_trigger.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/restore/_trigger.py index 34660740209..764f55f9ad4 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/restore/_trigger.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/restore/_trigger.py @@ -17,15 +17,12 @@ ) class Trigger(AAZCommand): """Triggers restore for a BackupInstance - - :example: Trigger restore - az dataprotection backup-instance restore trigger -g sarath-rg --vault-name sarath-vault --backup-instance-name {backup_instance_name} --restore-request-object restore_request.json """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}/restore", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}/restore", "2023-05-01"], ] } @@ -62,6 +59,8 @@ def _build_arguments_schema(cls, *args, **kwargs): id_part="name", ) + # define Arg Group "Parameters" + # define Arg Group "Properties" _args_schema = cls._args_schema @@ -202,6 +201,10 @@ def _build_arguments_schema(cls, *args, **kwargs): help="Gets or sets the PV (Persistent Volume) Restore Mode property. This property sets whether volumes needs to be restored.", enum={"RestoreWithVolumeData": "RestoreWithVolumeData", "RestoreWithoutVolumeData": "RestoreWithoutVolumeData"}, ) + kubernetes_cluster_restore_criteria.restore_hook_references = AAZListArg( + options=["restore-hook-references"], + help="Gets or sets the restore hook references. This property sets the hook reference to be executed during restore.", + ) excluded_namespaces = cls._args_schema.restore_target_info.item_level_restore_target_info.restore_criteria.Element.kubernetes_cluster_restore_criteria.excluded_namespaces excluded_namespaces.Element = AAZStrArg() @@ -221,6 +224,19 @@ def _build_arguments_schema(cls, *args, **kwargs): namespace_mappings = cls._args_schema.restore_target_info.item_level_restore_target_info.restore_criteria.Element.kubernetes_cluster_restore_criteria.namespace_mappings namespace_mappings.Element = AAZStrArg() + restore_hook_references = cls._args_schema.restore_target_info.item_level_restore_target_info.restore_criteria.Element.kubernetes_cluster_restore_criteria.restore_hook_references + restore_hook_references.Element = AAZObjectArg() + + _element = cls._args_schema.restore_target_info.item_level_restore_target_info.restore_criteria.Element.kubernetes_cluster_restore_criteria.restore_hook_references.Element + _element.name = AAZStrArg( + options=["name"], + help="Name of the resource", + ) + _element.namespace = AAZStrArg( + options=["namespace"], + help="Namespace in which the resource exists", + ) + kubernetes_pv_restore_criteria = cls._args_schema.restore_target_info.item_level_restore_target_info.restore_criteria.Element.kubernetes_pv_restore_criteria kubernetes_pv_restore_criteria.name = AAZStrArg( options=["name"], @@ -338,6 +354,25 @@ def _build_args_auth_credentials_create(cls, _schema): _schema.secret_store_based_auth_credentials = cls._args_auth_credentials_create.secret_store_based_auth_credentials + _args_base_resource_properties_create = None + + @classmethod + def _build_args_base_resource_properties_create(cls, _schema): + if cls._args_base_resource_properties_create is not None: + _schema.object_type = cls._args_base_resource_properties_create.object_type + return + + cls._args_base_resource_properties_create = AAZObjectArg() + + base_resource_properties_create = cls._args_base_resource_properties_create + base_resource_properties_create.object_type = AAZStrArg( + options=["object-type"], + help="Type of the specific object - used for deserializing", + required=True, + ) + + _schema.object_type = cls._args_base_resource_properties_create.object_type + _args_datasource_set_create = None @classmethod @@ -348,6 +383,7 @@ def _build_args_datasource_set_create(cls, _schema): _schema.resource_id = cls._args_datasource_set_create.resource_id _schema.resource_location = cls._args_datasource_set_create.resource_location _schema.resource_name = cls._args_datasource_set_create.resource_name + _schema.resource_properties = cls._args_datasource_set_create.resource_properties _schema.resource_type = cls._args_datasource_set_create.resource_type _schema.resource_uri = cls._args_datasource_set_create.resource_uri return @@ -376,6 +412,11 @@ def _build_args_datasource_set_create(cls, _schema): options=["resource-name"], help="Unique identifier of the resource in the context of parent.", ) + datasource_set_create.resource_properties = AAZObjectArg( + options=["resource-properties"], + help="Properties specific to data source set", + ) + cls._build_args_base_resource_properties_create(datasource_set_create.resource_properties) datasource_set_create.resource_type = AAZStrArg( options=["resource-type"], help="Resource Type of Datasource.", @@ -390,6 +431,7 @@ def _build_args_datasource_set_create(cls, _schema): _schema.resource_id = cls._args_datasource_set_create.resource_id _schema.resource_location = cls._args_datasource_set_create.resource_location _schema.resource_name = cls._args_datasource_set_create.resource_name + _schema.resource_properties = cls._args_datasource_set_create.resource_properties _schema.resource_type = cls._args_datasource_set_create.resource_type _schema.resource_uri = cls._args_datasource_set_create.resource_uri @@ -403,6 +445,7 @@ def _build_args_datasource_create(cls, _schema): _schema.resource_id = cls._args_datasource_create.resource_id _schema.resource_location = cls._args_datasource_create.resource_location _schema.resource_name = cls._args_datasource_create.resource_name + _schema.resource_properties = cls._args_datasource_create.resource_properties _schema.resource_type = cls._args_datasource_create.resource_type _schema.resource_uri = cls._args_datasource_create.resource_uri return @@ -431,6 +474,11 @@ def _build_args_datasource_create(cls, _schema): options=["resource-name"], help="Unique identifier of the resource in the context of parent.", ) + datasource_create.resource_properties = AAZObjectArg( + options=["resource-properties"], + help="Properties specific to data source", + ) + cls._build_args_base_resource_properties_create(datasource_create.resource_properties) datasource_create.resource_type = AAZStrArg( options=["resource-type"], help="Resource Type of Datasource.", @@ -445,6 +493,7 @@ def _build_args_datasource_create(cls, _schema): _schema.resource_id = cls._args_datasource_create.resource_id _schema.resource_location = cls._args_datasource_create.resource_location _schema.resource_name = cls._args_datasource_create.resource_name + _schema.resource_properties = cls._args_datasource_create.resource_properties _schema.resource_type = cls._args_datasource_create.resource_type _schema.resource_uri = cls._args_datasource_create.resource_uri @@ -533,7 +582,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -621,6 +670,7 @@ def content(self): disc_kubernetes_cluster_restore_criteria.set_prop("labelSelectors", AAZListType, ".kubernetes_cluster_restore_criteria.label_selectors") disc_kubernetes_cluster_restore_criteria.set_prop("namespaceMappings", AAZDictType, ".kubernetes_cluster_restore_criteria.namespace_mappings") disc_kubernetes_cluster_restore_criteria.set_prop("persistentVolumeRestoreMode", AAZStrType, ".kubernetes_cluster_restore_criteria.persistent_volume_restore_mode") + disc_kubernetes_cluster_restore_criteria.set_prop("restoreHookReferences", AAZListType, ".kubernetes_cluster_restore_criteria.restore_hook_references") excluded_namespaces = _builder.get(".restoreTargetInfo{objectType:ItemLevelRestoreTargetInfo}.restoreCriteria[]{objectType:KubernetesClusterRestoreCriteria}.excludedNamespaces") if excluded_namespaces is not None: @@ -646,6 +696,15 @@ def content(self): if namespace_mappings is not None: namespace_mappings.set_elements(AAZStrType, ".") + restore_hook_references = _builder.get(".restoreTargetInfo{objectType:ItemLevelRestoreTargetInfo}.restoreCriteria[]{objectType:KubernetesClusterRestoreCriteria}.restoreHookReferences") + if restore_hook_references is not None: + restore_hook_references.set_elements(AAZObjectType, ".") + + _elements = _builder.get(".restoreTargetInfo{objectType:ItemLevelRestoreTargetInfo}.restoreCriteria[]{objectType:KubernetesClusterRestoreCriteria}.restoreHookReferences[]") + if _elements is not None: + _elements.set_prop("name", AAZStrType, ".name") + _elements.set_prop("namespace", AAZStrType, ".namespace") + disc_kubernetes_pv_restore_criteria = _builder.get(".restoreTargetInfo{objectType:ItemLevelRestoreTargetInfo}.restoreCriteria[]{objectType:KubernetesPVRestoreCriteria}") if disc_kubernetes_pv_restore_criteria is not None: disc_kubernetes_pv_restore_criteria.set_prop("name", AAZStrType, ".kubernetes_pv_restore_criteria.name") @@ -743,6 +802,12 @@ def _build_schema_auth_credentials_create(cls, _builder): secret_store_resource.set_prop("uri", AAZStrType, ".uri") secret_store_resource.set_prop("value", AAZStrType, ".value") + @classmethod + def _build_schema_base_resource_properties_create(cls, _builder): + if _builder is None: + return + _builder.set_prop("objectType", AAZStrType, ".object_type", typ_kwargs={"flags": {"required": True}}) + @classmethod def _build_schema_datasource_set_create(cls, _builder): if _builder is None: @@ -752,6 +817,7 @@ def _build_schema_datasource_set_create(cls, _builder): _builder.set_prop("resourceID", AAZStrType, ".resource_id", typ_kwargs={"flags": {"required": True}}) _builder.set_prop("resourceLocation", AAZStrType, ".resource_location") _builder.set_prop("resourceName", AAZStrType, ".resource_name") + cls._build_schema_base_resource_properties_create(_builder.set_prop("resourceProperties", AAZObjectType, ".resource_properties")) _builder.set_prop("resourceType", AAZStrType, ".resource_type") _builder.set_prop("resourceUri", AAZStrType, ".resource_uri") @@ -764,6 +830,7 @@ def _build_schema_datasource_create(cls, _builder): _builder.set_prop("resourceID", AAZStrType, ".resource_id", typ_kwargs={"flags": {"required": True}}) _builder.set_prop("resourceLocation", AAZStrType, ".resource_location") _builder.set_prop("resourceName", AAZStrType, ".resource_name") + cls._build_schema_base_resource_properties_create(_builder.set_prop("resourceProperties", AAZObjectType, ".resource_properties")) _builder.set_prop("resourceType", AAZStrType, ".resource_type") _builder.set_prop("resourceUri", AAZStrType, ".resource_uri") diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_policy/_create.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_policy/_create.py index 3ddbfdf3a78..6665f92e684 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_policy/_create.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_policy/_create.py @@ -23,9 +23,9 @@ class Create(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backuppolicies/{}", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backuppolicies/{}", "2023-05-01"], ] } @@ -429,7 +429,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_policy/_delete.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_policy/_delete.py index 18e1eecb0b5..e5eb155fe5b 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_policy/_delete.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_policy/_delete.py @@ -24,9 +24,9 @@ class Delete(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backuppolicies/{}", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backuppolicies/{}", "2023-05-01"], ] } @@ -130,7 +130,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_policy/_list.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_policy/_list.py index bed99584975..a76290311fa 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_policy/_list.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_policy/_list.py @@ -23,9 +23,9 @@ class List(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backuppolicies", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backuppolicies", "2023-05-01"], ] } @@ -120,7 +120,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_policy/_show.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_policy/_show.py index c4ca52cc9a2..e721ab7b81c 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_policy/_show.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_policy/_show.py @@ -23,9 +23,9 @@ class Show(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backuppolicies/{}", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backuppolicies/{}", "2023-05-01"], ] } @@ -131,7 +131,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_policy/_update.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_policy/_update.py index 34fc4114ec6..3586a27c3d0 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_policy/_update.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_policy/_update.py @@ -11,14 +11,18 @@ from azure.cli.core.aaz import * +@register_command( + "dataprotection backup-policy update", + is_experimental=True, +) class Update(AAZCommand): """Update a backup policy belonging to a backup vault. """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backuppolicies/{}", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backuppolicies/{}", "2023-05-01"], ] } @@ -481,7 +485,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -568,7 +572,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_create.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_create.py index ea7e89c303d..2c84f5b168a 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_create.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_create.py @@ -26,9 +26,9 @@ class Create(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}", "2023-05-01"], ] } @@ -245,7 +245,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -385,6 +385,22 @@ def _build_schema_on_200_201(cls): flags={"read_only": True}, ) identity.type = AAZStrType() + identity.user_assigned_identities = AAZDictType( + serialized_name="userAssignedIdentities", + ) + + user_assigned_identities = cls._schema_on_200_201.identity.user_assigned_identities + user_assigned_identities.Element = AAZObjectType() + + _element = cls._schema_on_200_201.identity.user_assigned_identities.Element + _element.client_id = AAZStrType( + serialized_name="clientId", + flags={"read_only": True}, + ) + _element.principal_id = AAZStrType( + serialized_name="principalId", + flags={"read_only": True}, + ) properties = cls._schema_on_200_201.properties properties.feature_settings = AAZObjectType( @@ -408,6 +424,10 @@ def _build_schema_on_200_201(cls): serialized_name="resourceMoveState", flags={"read_only": True}, ) + properties.secure_score = AAZStrType( + serialized_name="secureScore", + flags={"read_only": True}, + ) properties.security_settings = AAZObjectType( serialized_name="securitySettings", ) @@ -417,10 +437,16 @@ def _build_schema_on_200_201(cls): ) feature_settings = cls._schema_on_200_201.properties.feature_settings + feature_settings.cross_region_restore_settings = AAZObjectType( + serialized_name="crossRegionRestoreSettings", + ) feature_settings.cross_subscription_restore_settings = AAZObjectType( serialized_name="crossSubscriptionRestoreSettings", ) + cross_region_restore_settings = cls._schema_on_200_201.properties.feature_settings.cross_region_restore_settings + cross_region_restore_settings.state = AAZStrType() + cross_subscription_restore_settings = cls._schema_on_200_201.properties.feature_settings.cross_subscription_restore_settings cross_subscription_restore_settings.state = AAZStrType() diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_delete.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_delete.py index 0deb857e9a1..aef2fbaf7b2 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_delete.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_delete.py @@ -24,9 +24,9 @@ class Delete(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}", "2023-05-01"], ] } @@ -144,7 +144,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_list.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_list.py index b76be86e9f3..cf04325cbf9 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_list.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_list.py @@ -26,10 +26,10 @@ class List(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/providers/microsoft.dataprotection/backupvaults", "2023-01-01"], - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/providers/microsoft.dataprotection/backupvaults", "2023-05-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults", "2023-05-01"], ] } @@ -118,7 +118,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -195,6 +195,22 @@ def _build_schema_on_200(cls): flags={"read_only": True}, ) identity.type = AAZStrType() + identity.user_assigned_identities = AAZDictType( + serialized_name="userAssignedIdentities", + ) + + user_assigned_identities = cls._schema_on_200.value.Element.identity.user_assigned_identities + user_assigned_identities.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element.identity.user_assigned_identities.Element + _element.client_id = AAZStrType( + serialized_name="clientId", + flags={"read_only": True}, + ) + _element.principal_id = AAZStrType( + serialized_name="principalId", + flags={"read_only": True}, + ) properties = cls._schema_on_200.value.Element.properties properties.feature_settings = AAZObjectType( @@ -218,6 +234,10 @@ def _build_schema_on_200(cls): serialized_name="resourceMoveState", flags={"read_only": True}, ) + properties.secure_score = AAZStrType( + serialized_name="secureScore", + flags={"read_only": True}, + ) properties.security_settings = AAZObjectType( serialized_name="securitySettings", ) @@ -227,10 +247,16 @@ def _build_schema_on_200(cls): ) feature_settings = cls._schema_on_200.value.Element.properties.feature_settings + feature_settings.cross_region_restore_settings = AAZObjectType( + serialized_name="crossRegionRestoreSettings", + ) feature_settings.cross_subscription_restore_settings = AAZObjectType( serialized_name="crossSubscriptionRestoreSettings", ) + cross_region_restore_settings = cls._schema_on_200.value.Element.properties.feature_settings.cross_region_restore_settings + cross_region_restore_settings.state = AAZStrType() + cross_subscription_restore_settings = cls._schema_on_200.value.Element.properties.feature_settings.cross_subscription_restore_settings cross_subscription_restore_settings.state = AAZStrType() @@ -352,7 +378,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -429,6 +455,22 @@ def _build_schema_on_200(cls): flags={"read_only": True}, ) identity.type = AAZStrType() + identity.user_assigned_identities = AAZDictType( + serialized_name="userAssignedIdentities", + ) + + user_assigned_identities = cls._schema_on_200.value.Element.identity.user_assigned_identities + user_assigned_identities.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element.identity.user_assigned_identities.Element + _element.client_id = AAZStrType( + serialized_name="clientId", + flags={"read_only": True}, + ) + _element.principal_id = AAZStrType( + serialized_name="principalId", + flags={"read_only": True}, + ) properties = cls._schema_on_200.value.Element.properties properties.feature_settings = AAZObjectType( @@ -452,6 +494,10 @@ def _build_schema_on_200(cls): serialized_name="resourceMoveState", flags={"read_only": True}, ) + properties.secure_score = AAZStrType( + serialized_name="secureScore", + flags={"read_only": True}, + ) properties.security_settings = AAZObjectType( serialized_name="securitySettings", ) @@ -461,10 +507,16 @@ def _build_schema_on_200(cls): ) feature_settings = cls._schema_on_200.value.Element.properties.feature_settings + feature_settings.cross_region_restore_settings = AAZObjectType( + serialized_name="crossRegionRestoreSettings", + ) feature_settings.cross_subscription_restore_settings = AAZObjectType( serialized_name="crossSubscriptionRestoreSettings", ) + cross_region_restore_settings = cls._schema_on_200.value.Element.properties.feature_settings.cross_region_restore_settings + cross_region_restore_settings.state = AAZStrType() + cross_subscription_restore_settings = cls._schema_on_200.value.Element.properties.feature_settings.cross_subscription_restore_settings cross_subscription_restore_settings.state = AAZStrType() diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_show.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_show.py index 1f57d6645e8..518d1a4c318 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_show.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_show.py @@ -26,9 +26,9 @@ class Show(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}", "2023-05-01"], ] } @@ -124,7 +124,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -192,6 +192,22 @@ def _build_schema_on_200(cls): flags={"read_only": True}, ) identity.type = AAZStrType() + identity.user_assigned_identities = AAZDictType( + serialized_name="userAssignedIdentities", + ) + + user_assigned_identities = cls._schema_on_200.identity.user_assigned_identities + user_assigned_identities.Element = AAZObjectType() + + _element = cls._schema_on_200.identity.user_assigned_identities.Element + _element.client_id = AAZStrType( + serialized_name="clientId", + flags={"read_only": True}, + ) + _element.principal_id = AAZStrType( + serialized_name="principalId", + flags={"read_only": True}, + ) properties = cls._schema_on_200.properties properties.feature_settings = AAZObjectType( @@ -215,6 +231,10 @@ def _build_schema_on_200(cls): serialized_name="resourceMoveState", flags={"read_only": True}, ) + properties.secure_score = AAZStrType( + serialized_name="secureScore", + flags={"read_only": True}, + ) properties.security_settings = AAZObjectType( serialized_name="securitySettings", ) @@ -224,10 +244,16 @@ def _build_schema_on_200(cls): ) feature_settings = cls._schema_on_200.properties.feature_settings + feature_settings.cross_region_restore_settings = AAZObjectType( + serialized_name="crossRegionRestoreSettings", + ) feature_settings.cross_subscription_restore_settings = AAZObjectType( serialized_name="crossSubscriptionRestoreSettings", ) + cross_region_restore_settings = cls._schema_on_200.properties.feature_settings.cross_region_restore_settings + cross_region_restore_settings.state = AAZStrType() + cross_subscription_restore_settings = cls._schema_on_200.properties.feature_settings.cross_subscription_restore_settings cross_subscription_restore_settings.state = AAZStrType() diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_update.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_update.py index 4b191b9affe..61a30044b22 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_update.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_update.py @@ -23,9 +23,9 @@ class Update(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}", "2023-05-01"], ] } @@ -214,7 +214,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -313,7 +313,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -487,6 +487,22 @@ def _build_schema_backup_vault_resource_read(cls, _schema): flags={"read_only": True}, ) identity.type = AAZStrType() + identity.user_assigned_identities = AAZDictType( + serialized_name="userAssignedIdentities", + ) + + user_assigned_identities = _schema_backup_vault_resource_read.identity.user_assigned_identities + user_assigned_identities.Element = AAZObjectType() + + _element = _schema_backup_vault_resource_read.identity.user_assigned_identities.Element + _element.client_id = AAZStrType( + serialized_name="clientId", + flags={"read_only": True}, + ) + _element.principal_id = AAZStrType( + serialized_name="principalId", + flags={"read_only": True}, + ) properties = _schema_backup_vault_resource_read.properties properties.feature_settings = AAZObjectType( @@ -510,6 +526,10 @@ def _build_schema_backup_vault_resource_read(cls, _schema): serialized_name="resourceMoveState", flags={"read_only": True}, ) + properties.secure_score = AAZStrType( + serialized_name="secureScore", + flags={"read_only": True}, + ) properties.security_settings = AAZObjectType( serialized_name="securitySettings", ) @@ -519,10 +539,16 @@ def _build_schema_backup_vault_resource_read(cls, _schema): ) feature_settings = _schema_backup_vault_resource_read.properties.feature_settings + feature_settings.cross_region_restore_settings = AAZObjectType( + serialized_name="crossRegionRestoreSettings", + ) feature_settings.cross_subscription_restore_settings = AAZObjectType( serialized_name="crossSubscriptionRestoreSettings", ) + cross_region_restore_settings = _schema_backup_vault_resource_read.properties.feature_settings.cross_region_restore_settings + cross_region_restore_settings.state = AAZStrType() + cross_subscription_restore_settings = _schema_backup_vault_resource_read.properties.feature_settings.cross_subscription_restore_settings cross_subscription_restore_settings.state = AAZStrType() diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_wait.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_wait.py index 44f543550af..ecf2eeda752 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_wait.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_vault/_wait.py @@ -20,7 +20,7 @@ class Wait(AAZWaitCommand): _aaz_info = { "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}", "2023-05-01"], ] } @@ -116,7 +116,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -184,6 +184,22 @@ def _build_schema_on_200(cls): flags={"read_only": True}, ) identity.type = AAZStrType() + identity.user_assigned_identities = AAZDictType( + serialized_name="userAssignedIdentities", + ) + + user_assigned_identities = cls._schema_on_200.identity.user_assigned_identities + user_assigned_identities.Element = AAZObjectType() + + _element = cls._schema_on_200.identity.user_assigned_identities.Element + _element.client_id = AAZStrType( + serialized_name="clientId", + flags={"read_only": True}, + ) + _element.principal_id = AAZStrType( + serialized_name="principalId", + flags={"read_only": True}, + ) properties = cls._schema_on_200.properties properties.feature_settings = AAZObjectType( @@ -207,6 +223,10 @@ def _build_schema_on_200(cls): serialized_name="resourceMoveState", flags={"read_only": True}, ) + properties.secure_score = AAZStrType( + serialized_name="secureScore", + flags={"read_only": True}, + ) properties.security_settings = AAZObjectType( serialized_name="securitySettings", ) @@ -216,10 +236,16 @@ def _build_schema_on_200(cls): ) feature_settings = cls._schema_on_200.properties.feature_settings + feature_settings.cross_region_restore_settings = AAZObjectType( + serialized_name="crossRegionRestoreSettings", + ) feature_settings.cross_subscription_restore_settings = AAZObjectType( serialized_name="crossSubscriptionRestoreSettings", ) + cross_region_restore_settings = cls._schema_on_200.properties.feature_settings.cross_region_restore_settings + cross_region_restore_settings.state = AAZStrType() + cross_subscription_restore_settings = cls._schema_on_200.properties.feature_settings.cross_subscription_restore_settings cross_subscription_restore_settings.state = AAZStrType() diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/job/_list.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/job/_list.py index fd564eb89ed..66f0c557a91 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/job/_list.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/job/_list.py @@ -23,9 +23,9 @@ class List(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupjobs", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupjobs", "2023-05-01"], ] } @@ -120,7 +120,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -252,6 +252,10 @@ def _build_schema_on_200(cls): serialized_name="progressUrl", flags={"read_only": True}, ) + properties.rehydration_priority = AAZStrType( + serialized_name="rehydrationPriority", + flags={"read_only": True}, + ) properties.restore_type = AAZStrType( serialized_name="restoreType", flags={"read_only": True}, diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/job/_show.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/job/_show.py index 679412f1bbb..6fd7b994db6 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/job/_show.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/job/_show.py @@ -23,9 +23,9 @@ class Show(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupjobs/{}", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupjobs/{}", "2023-05-01"], ] } @@ -137,7 +137,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -260,6 +260,10 @@ def _build_schema_on_200(cls): serialized_name="progressUrl", flags={"read_only": True}, ) + properties.rehydration_priority = AAZStrType( + serialized_name="rehydrationPriority", + flags={"read_only": True}, + ) properties.restore_type = AAZStrType( serialized_name="restoreType", flags={"read_only": True}, diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/recovery_point/_list.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/recovery_point/_list.py index 4684e74dcc5..9e624565c95 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/recovery_point/_list.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/recovery_point/_list.py @@ -23,9 +23,9 @@ class List(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}/recoverypoints", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}/recoverypoints", "2023-05-01"], ] } @@ -143,7 +143,7 @@ def query_parameters(self): "$skipToken", self.ctx.args.skip_token, ), **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/recovery_point/_show.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/recovery_point/_show.py index c97cc8a11c0..94a98038602 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/recovery_point/_show.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/recovery_point/_show.py @@ -23,9 +23,9 @@ class Show(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}/recoverypoints/{}", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}/recoverypoints/{}", "2023-05-01"], ] } @@ -148,7 +148,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/resource_guard/_create.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/resource_guard/_create.py index 37fc8fe0211..15f4540d7b5 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/resource_guard/_create.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/resource_guard/_create.py @@ -23,9 +23,9 @@ class Create(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/resourceguards/{}", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/resourceguards/{}", "2023-05-01"], ] } @@ -144,7 +144,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/resource_guard/_delete.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/resource_guard/_delete.py index a827ddfbb21..94dd893f713 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/resource_guard/_delete.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/resource_guard/_delete.py @@ -24,9 +24,9 @@ class Delete(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/resourceguards/{}", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/resourceguards/{}", "2023-05-01"], ] } @@ -120,7 +120,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/resource_guard/_list.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/resource_guard/_list.py index 4e1c98d65cd..9e69beee089 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/resource_guard/_list.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/resource_guard/_list.py @@ -26,10 +26,10 @@ class List(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/providers/microsoft.dataprotection/resourceguards", "2023-01-01"], - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/resourceguards", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/providers/microsoft.dataprotection/resourceguards", "2023-05-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/resourceguards", "2023-05-01"], ] } @@ -118,7 +118,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -281,7 +281,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/resource_guard/_show.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/resource_guard/_show.py index e94ba00da94..2ccc092a082 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/resource_guard/_show.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/resource_guard/_show.py @@ -23,9 +23,9 @@ class Show(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/resourceguards/{}", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/resourceguards/{}", "2023-05-01"], ] } @@ -121,7 +121,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/resource_guard/_update.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/resource_guard/_update.py index c5f23fc83d9..a1674a7ed83 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/resource_guard/_update.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/resource_guard/_update.py @@ -23,9 +23,9 @@ class Update(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/resourceguards/{}", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/resourceguards/{}", "2023-05-01"], ] } @@ -158,7 +158,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } @@ -241,7 +241,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), } diff --git a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/restorable_time_range/_find.py b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/restorable_time_range/_find.py index 6ab93b66300..4b38f89b095 100644 --- a/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/restorable_time_range/_find.py +++ b/src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/restorable_time_range/_find.py @@ -23,9 +23,9 @@ class Find(AAZCommand): """ _aaz_info = { - "version": "2023-01-01", + "version": "2023-05-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}/findrestorabletimeranges", "2023-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}/findrestorabletimeranges", "2023-05-01"], ] } @@ -151,7 +151,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2023-01-01", + "api-version", "2023-05-01", required=True, ), }