diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_access_control_client.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_access_control_client.py index 51e795965928..167fcd9b18b5 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_access_control_client.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_access_control_client.py @@ -44,6 +44,8 @@ def create_role_assignment(self, role_scope, role_definition_id, principal_id, * :type role_assignment_name: str or uuid.UUID :rtype: KeyVaultRoleAssignment """ + role_assignment_name = kwargs.pop("role_assignment_name", None) or uuid4() + create_parameters = self._client.role_assignments.models.RoleAssignmentCreateParameters( properties=self._client.role_assignments.models.RoleAssignmentProperties( principal_id=principal_id, role_definition_id=str(role_definition_id) @@ -52,7 +54,7 @@ def create_role_assignment(self, role_scope, role_definition_id, principal_id, * assignment = self._client.role_assignments.create( vault_base_url=self._vault_url, scope=role_scope, - role_assignment_name=kwargs.pop("role_assignment_name", None) or uuid4(), + role_assignment_name=str(role_assignment_name), parameters=create_parameters, **kwargs ) @@ -66,7 +68,7 @@ def delete_role_assignment(self, role_scope, role_assignment_name, **kwargs): :param role_scope: the assignment's scope, for example "/", "/keys", or "/keys/" :class:`KeyVaultRoleScope` defines common broad scopes. Specify a narrower scope as a string. :type role_scope: str or KeyVaultRoleScope - :param role_assignment_name: the assignment's name. Must be a UUID. + :param role_assignment_name: the assignment's name. :type role_assignment_name: str or uuid.UUID :returns: the deleted assignment :rtype: KeyVaultRoleAssignment @@ -121,14 +123,17 @@ def set_role_definition(self, role_scope, permissions, **kwargs): :param permissions: the role definition's permissions. An empty list results in a role definition with no action permissions. :type permissions: Iterable[KeyVaultPermission] + :keyword str role_name: the role's name. If unspecified when creating or updating a role definition, the role + name will be set to an empty string. :keyword role_definition_name: the role definition's name. Must be a UUID. :type role_definition_name: str or uuid.UUID - :keyword assignable_scopes: the role definition's assignable scopes. - :type assignable_scopes: list[str] + :keyword str description: a description of the role definition. If unspecified when creating or updating a role + definition, the description will be set to an empty string. :returns: The created or updated role definition :rtype: KeyVaultRoleDefinition """ role_definition_name = kwargs.pop("role_definition_name", None) or uuid4() + permissions = [ self._client.role_definitions.models.Permission( actions=p.allowed_actions, @@ -140,14 +145,16 @@ def set_role_definition(self, role_scope, permissions, **kwargs): ] properties = self._client.role_definitions.models.RoleDefinitionProperties( - role_name=role_definition_name, permissions=permissions, **kwargs + role_name=kwargs.pop("role_name", None), + description=kwargs.pop("description", None), + permissions=permissions ) parameters = self._client.role_definitions.models.RoleDefinitionCreateParameters(properties=properties) definition = self._client.role_definitions.create_or_update( vault_base_url=self._vault_url, scope=role_scope, - role_definition_name=role_definition_name, + role_definition_name=str(role_definition_name), parameters=parameters, **kwargs ) @@ -178,7 +185,7 @@ def delete_role_definition(self, role_scope, role_definition_name, **kwargs): :param role_scope: scope of the role definition. :class:`KeyVaultRoleScope` defines common broad scopes. Specify a narrower scope as a string. Managed HSM only supports '/', or KeyVaultRoleScope.global_value. :type role_scope: str or KeyVaultRoleScope - :param role_definition_name: the role definition's name. Must be a UUID. + :param role_definition_name: the role definition's name. :type role_definition_name: str or uuid.UUID :returns: the deleted role definition :rtype: KeyVaultRoleDefinition diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/aio/_key_vault_client_async.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/aio/_key_vault_client_async.py index 24bb6d619c51..8776ff298fff 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/aio/_key_vault_client_async.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/aio/_key_vault_client_async.py @@ -89,7 +89,7 @@ def role_assignments(self): """ api_version = self._get_api_version('role_assignments') if api_version == '7.2-preview': - from ..v7_2_preview.aio.operations_async import RoleAssignmentsOperations as OperationClass + from ..v7_2_preview.aio.operations import RoleAssignmentsOperations as OperationClass else: raise NotImplementedError("APIVersion {} is not available".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -102,7 +102,7 @@ def role_definitions(self): """ api_version = self._get_api_version('role_definitions') if api_version == '7.2-preview': - from ..v7_2_preview.aio.operations_async import RoleDefinitionsOperations as OperationClass + from ..v7_2_preview.aio.operations import RoleDefinitionsOperations as OperationClass else: raise NotImplementedError("APIVersion {} is not available".format(api_version)) return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/aio/_operations_mixin_async.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/aio/_operations_mixin_async.py index 19f1dfa324e2..e7adad6c1fa6 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/aio/_operations_mixin_async.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/aio/_operations_mixin_async.py @@ -47,7 +47,7 @@ async def begin_full_backup( """ api_version = self._get_api_version('begin_full_backup') if api_version == '7.2-preview': - from ..v7_2_preview.aio.operations_async import KeyVaultClientOperationsMixin as OperationClass + from ..v7_2_preview.aio.operations import KeyVaultClientOperationsMixin as OperationClass else: raise NotImplementedError("APIVersion {} is not available".format(api_version)) mixin_instance = OperationClass() @@ -83,7 +83,7 @@ async def begin_full_restore_operation( """ api_version = self._get_api_version('begin_full_restore_operation') if api_version == '7.2-preview': - from ..v7_2_preview.aio.operations_async import KeyVaultClientOperationsMixin as OperationClass + from ..v7_2_preview.aio.operations import KeyVaultClientOperationsMixin as OperationClass else: raise NotImplementedError("APIVersion {} is not available".format(api_version)) mixin_instance = OperationClass() @@ -122,7 +122,7 @@ async def begin_selective_key_restore_operation( """ api_version = self._get_api_version('begin_selective_key_restore_operation') if api_version == '7.2-preview': - from ..v7_2_preview.aio.operations_async import KeyVaultClientOperationsMixin as OperationClass + from ..v7_2_preview.aio.operations import KeyVaultClientOperationsMixin as OperationClass else: raise NotImplementedError("APIVersion {} is not available".format(api_version)) mixin_instance = OperationClass() @@ -151,7 +151,7 @@ async def full_backup_status( """ api_version = self._get_api_version('full_backup_status') if api_version == '7.2-preview': - from ..v7_2_preview.aio.operations_async import KeyVaultClientOperationsMixin as OperationClass + from ..v7_2_preview.aio.operations import KeyVaultClientOperationsMixin as OperationClass else: raise NotImplementedError("APIVersion {} is not available".format(api_version)) mixin_instance = OperationClass() @@ -180,7 +180,7 @@ async def restore_status( """ api_version = self._get_api_version('restore_status') if api_version == '7.2-preview': - from ..v7_2_preview.aio.operations_async import KeyVaultClientOperationsMixin as OperationClass + from ..v7_2_preview.aio.operations import KeyVaultClientOperationsMixin as OperationClass else: raise NotImplementedError("APIVersion {} is not available".format(api_version)) mixin_instance = OperationClass() diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/_key_vault_client.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/_key_vault_client.py index 91acb44b0c6b..dc3a14ac61f4 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/_key_vault_client.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/_key_vault_client.py @@ -16,9 +16,9 @@ from typing import Any from ._configuration import KeyVaultClientConfiguration -from .operations import KeyVaultClientOperationsMixin from .operations import RoleDefinitionsOperations from .operations import RoleAssignmentsOperations +from .operations import KeyVaultClientOperationsMixin from . import models diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/_metadata.json b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/_metadata.json deleted file mode 100644 index 2e1b4f3b0f3c..000000000000 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/_metadata.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "chosen_version": "7.2-preview", - "total_api_version_list": ["7.2-preview"], - "client": { - "name": "KeyVaultClient", - "filename": "_key_vault_client", - "description": "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.", - "base_url": null, - "custom_base_url": "\u0027{vaultBaseUrl}\u0027", - "azure_arm": false - }, - "global_parameters": { - "sync_method": { - }, - "async_method": { - }, - "constant": { - }, - "call": "" - }, - "config": { - "credential": false, - "credential_scopes": null, - "credential_default_policy_type": "BearerTokenCredentialPolicy", - "credential_default_policy_type_has_async_version": true - }, - "operation_groups": { - "role_definitions": "RoleDefinitionsOperations", - "role_assignments": "RoleAssignmentsOperations" - }, - "operation_mixins": { - "_full_backup_initial" : { - "sync": { - "signature": "def _full_backup_initial(\n self,\n vault_base_url, # type: str\n azure_storage_blob_container_uri=None, # type: Optional[\"models.SASTokenParameter\"]\n **kwargs # type: Any\n):\n", - "doc": "\"\"\"\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param azure_storage_blob_container_uri: Azure blob shared access signature token pointing to a\n valid Azure blob container where full backup needs to be stored. This token needs to be valid\n for at least next 24 hours from the time of making this call.\n:type azure_storage_blob_container_uri: ~azure.keyvault.v7_2.models.SASTokenParameter\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: FullBackupOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_2.models.FullBackupOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" - }, - "async": { - "coroutine": true, - "signature": "async def _full_backup_initial(\n self,\n vault_base_url: str,\n azure_storage_blob_container_uri: Optional[\"models.SASTokenParameter\"] = None,\n **kwargs\n) -\u003e \"models.FullBackupOperation\":\n", - "doc": "\"\"\"\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param azure_storage_blob_container_uri: Azure blob shared access signature token pointing to a\n valid Azure blob container where full backup needs to be stored. This token needs to be valid\n for at least next 24 hours from the time of making this call.\n:type azure_storage_blob_container_uri: ~azure.keyvault.v7_2.models.SASTokenParameter\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: FullBackupOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_2.models.FullBackupOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" - }, - "call": "vault_base_url, azure_storage_blob_container_uri" - }, - "begin_full_backup" : { - "sync": { - "signature": "def begin_full_backup(\n self,\n vault_base_url, # type: str\n azure_storage_blob_container_uri=None, # type: Optional[\"models.SASTokenParameter\"]\n **kwargs # type: Any\n):\n", - "doc": "\"\"\"Creates a full backup using a user-provided SAS token to an Azure blob storage container.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param azure_storage_blob_container_uri: Azure blob shared access signature token pointing to a\n valid Azure blob container where full backup needs to be stored. This token needs to be valid\n for at least next 24 hours from the time of making this call.\n:type azure_storage_blob_container_uri: ~azure.keyvault.v7_2.models.SASTokenParameter\n:keyword callable cls: A custom type or function that will be passed the direct response\n:keyword str continuation_token: A continuation token to restart a poller from a saved state.\n:keyword polling: True for ARMPolling, False for no polling, or a\n polling object for personal polling strategy\n:paramtype polling: bool or ~azure.core.polling.PollingMethod\n:keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.\n:return: An instance of LROPoller that returns either FullBackupOperation or the result of cls(response)\n:rtype: ~azure.core.polling.LROPoller[~azure.keyvault.v7_2.models.FullBackupOperation]\n:raises ~azure.core.exceptions.HttpResponseError:\n\"\"\"" - }, - "async": { - "coroutine": true, - "signature": "async def begin_full_backup(\n self,\n vault_base_url: str,\n azure_storage_blob_container_uri: Optional[\"models.SASTokenParameter\"] = None,\n **kwargs\n) -\u003e AsyncLROPoller[\"models.FullBackupOperation\"]:\n", - "doc": "\"\"\"Creates a full backup using a user-provided SAS token to an Azure blob storage container.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param azure_storage_blob_container_uri: Azure blob shared access signature token pointing to a\n valid Azure blob container where full backup needs to be stored. This token needs to be valid\n for at least next 24 hours from the time of making this call.\n:type azure_storage_blob_container_uri: ~azure.keyvault.v7_2.models.SASTokenParameter\n:keyword callable cls: A custom type or function that will be passed the direct response\n:keyword str continuation_token: A continuation token to restart a poller from a saved state.\n:keyword polling: True for ARMPolling, False for no polling, or a\n polling object for personal polling strategy\n:paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod\n:keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.\n:return: An instance of AsyncLROPoller that returns either FullBackupOperation or the result of cls(response)\n:rtype: ~azure.core.polling.AsyncLROPoller[~azure.keyvault.v7_2.models.FullBackupOperation]\n:raises ~azure.core.exceptions.HttpResponseError:\n\"\"\"" - }, - "call": "vault_base_url, azure_storage_blob_container_uri" - }, - "full_backup_status" : { - "sync": { - "signature": "def full_backup_status(\n self,\n vault_base_url, # type: str\n job_id, # type: str\n **kwargs # type: Any\n):\n", - "doc": "\"\"\"Returns the status of full backup operation.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param job_id: The id returned as part of the backup request.\n:type job_id: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: FullBackupOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_2.models.FullBackupOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" - }, - "async": { - "coroutine": true, - "signature": "async def full_backup_status(\n self,\n vault_base_url: str,\n job_id: str,\n **kwargs\n) -\u003e \"models.FullBackupOperation\":\n", - "doc": "\"\"\"Returns the status of full backup operation.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param job_id: The id returned as part of the backup request.\n:type job_id: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: FullBackupOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_2.models.FullBackupOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" - }, - "call": "vault_base_url, job_id" - }, - "_full_restore_operation_initial" : { - "sync": { - "signature": "def _full_restore_operation_initial(\n self,\n vault_base_url, # type: str\n restore_blob_details=None, # type: Optional[\"models.RestoreOperationParameters\"]\n **kwargs # type: Any\n):\n", - "doc": "\"\"\"\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous\n successful full backup was stored.\n:type restore_blob_details: ~azure.keyvault.v7_2.models.RestoreOperationParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: RestoreOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_2.models.RestoreOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" - }, - "async": { - "coroutine": true, - "signature": "async def _full_restore_operation_initial(\n self,\n vault_base_url: str,\n restore_blob_details: Optional[\"models.RestoreOperationParameters\"] = None,\n **kwargs\n) -\u003e \"models.RestoreOperation\":\n", - "doc": "\"\"\"\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous\n successful full backup was stored.\n:type restore_blob_details: ~azure.keyvault.v7_2.models.RestoreOperationParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: RestoreOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_2.models.RestoreOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" - }, - "call": "vault_base_url, restore_blob_details" - }, - "begin_full_restore_operation" : { - "sync": { - "signature": "def begin_full_restore_operation(\n self,\n vault_base_url, # type: str\n restore_blob_details=None, # type: Optional[\"models.RestoreOperationParameters\"]\n **kwargs # type: Any\n):\n", - "doc": "\"\"\"Restores all key materials using the SAS token pointing to a previously stored Azure Blob\nstorage backup folder.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous\n successful full backup was stored.\n:type restore_blob_details: ~azure.keyvault.v7_2.models.RestoreOperationParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:keyword str continuation_token: A continuation token to restart a poller from a saved state.\n:keyword polling: True for ARMPolling, False for no polling, or a\n polling object for personal polling strategy\n:paramtype polling: bool or ~azure.core.polling.PollingMethod\n:keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.\n:return: An instance of LROPoller that returns either RestoreOperation or the result of cls(response)\n:rtype: ~azure.core.polling.LROPoller[~azure.keyvault.v7_2.models.RestoreOperation]\n:raises ~azure.core.exceptions.HttpResponseError:\n\"\"\"" - }, - "async": { - "coroutine": true, - "signature": "async def begin_full_restore_operation(\n self,\n vault_base_url: str,\n restore_blob_details: Optional[\"models.RestoreOperationParameters\"] = None,\n **kwargs\n) -\u003e AsyncLROPoller[\"models.RestoreOperation\"]:\n", - "doc": "\"\"\"Restores all key materials using the SAS token pointing to a previously stored Azure Blob\nstorage backup folder.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous\n successful full backup was stored.\n:type restore_blob_details: ~azure.keyvault.v7_2.models.RestoreOperationParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:keyword str continuation_token: A continuation token to restart a poller from a saved state.\n:keyword polling: True for ARMPolling, False for no polling, or a\n polling object for personal polling strategy\n:paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod\n:keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.\n:return: An instance of AsyncLROPoller that returns either RestoreOperation or the result of cls(response)\n:rtype: ~azure.core.polling.AsyncLROPoller[~azure.keyvault.v7_2.models.RestoreOperation]\n:raises ~azure.core.exceptions.HttpResponseError:\n\"\"\"" - }, - "call": "vault_base_url, restore_blob_details" - }, - "restore_status" : { - "sync": { - "signature": "def restore_status(\n self,\n vault_base_url, # type: str\n job_id, # type: str\n **kwargs # type: Any\n):\n", - "doc": "\"\"\"Returns the status of restore operation.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param job_id: The Job Id returned part of the restore operation.\n:type job_id: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: RestoreOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_2.models.RestoreOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" - }, - "async": { - "coroutine": true, - "signature": "async def restore_status(\n self,\n vault_base_url: str,\n job_id: str,\n **kwargs\n) -\u003e \"models.RestoreOperation\":\n", - "doc": "\"\"\"Returns the status of restore operation.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param job_id: The Job Id returned part of the restore operation.\n:type job_id: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: RestoreOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_2.models.RestoreOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" - }, - "call": "vault_base_url, job_id" - }, - "_selective_key_restore_operation_initial" : { - "sync": { - "signature": "def _selective_key_restore_operation_initial(\n self,\n vault_base_url, # type: str\n key_name, # type: str\n restore_blob_details=None, # type: Optional[\"models.SelectiveKeyRestoreOperationParameters\"]\n **kwargs # type: Any\n):\n", - "doc": "\"\"\"\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param key_name: The name of the key to be restored from the user supplied backup.\n:type key_name: str\n:param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous\n successful full backup was stored.\n:type restore_blob_details: ~azure.keyvault.v7_2.models.SelectiveKeyRestoreOperationParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: SelectiveKeyRestoreOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_2.models.SelectiveKeyRestoreOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" - }, - "async": { - "coroutine": true, - "signature": "async def _selective_key_restore_operation_initial(\n self,\n vault_base_url: str,\n key_name: str,\n restore_blob_details: Optional[\"models.SelectiveKeyRestoreOperationParameters\"] = None,\n **kwargs\n) -\u003e \"models.SelectiveKeyRestoreOperation\":\n", - "doc": "\"\"\"\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param key_name: The name of the key to be restored from the user supplied backup.\n:type key_name: str\n:param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous\n successful full backup was stored.\n:type restore_blob_details: ~azure.keyvault.v7_2.models.SelectiveKeyRestoreOperationParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: SelectiveKeyRestoreOperation, or the result of cls(response)\n:rtype: ~azure.keyvault.v7_2.models.SelectiveKeyRestoreOperation\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" - }, - "call": "vault_base_url, key_name, restore_blob_details" - }, - "begin_selective_key_restore_operation" : { - "sync": { - "signature": "def begin_selective_key_restore_operation(\n self,\n vault_base_url, # type: str\n key_name, # type: str\n restore_blob_details=None, # type: Optional[\"models.SelectiveKeyRestoreOperationParameters\"]\n **kwargs # type: Any\n):\n", - "doc": "\"\"\"Restores all key versions of a given key using user supplied SAS token pointing to a previously\nstored Azure Blob storage backup folder.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param key_name: The name of the key to be restored from the user supplied backup.\n:type key_name: str\n:param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous\n successful full backup was stored.\n:type restore_blob_details: ~azure.keyvault.v7_2.models.SelectiveKeyRestoreOperationParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:keyword str continuation_token: A continuation token to restart a poller from a saved state.\n:keyword polling: True for ARMPolling, False for no polling, or a\n polling object for personal polling strategy\n:paramtype polling: bool or ~azure.core.polling.PollingMethod\n:keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.\n:return: An instance of LROPoller that returns either SelectiveKeyRestoreOperation or the result of cls(response)\n:rtype: ~azure.core.polling.LROPoller[~azure.keyvault.v7_2.models.SelectiveKeyRestoreOperation]\n:raises ~azure.core.exceptions.HttpResponseError:\n\"\"\"" - }, - "async": { - "coroutine": true, - "signature": "async def begin_selective_key_restore_operation(\n self,\n vault_base_url: str,\n key_name: str,\n restore_blob_details: Optional[\"models.SelectiveKeyRestoreOperationParameters\"] = None,\n **kwargs\n) -\u003e AsyncLROPoller[\"models.SelectiveKeyRestoreOperation\"]:\n", - "doc": "\"\"\"Restores all key versions of a given key using user supplied SAS token pointing to a previously\nstored Azure Blob storage backup folder.\n\n:param vault_base_url: The vault name, for example https://myvault.vault.azure.net.\n:type vault_base_url: str\n:param key_name: The name of the key to be restored from the user supplied backup.\n:type key_name: str\n:param restore_blob_details: The Azure blob SAS token pointing to a folder where the previous\n successful full backup was stored.\n:type restore_blob_details: ~azure.keyvault.v7_2.models.SelectiveKeyRestoreOperationParameters\n:keyword callable cls: A custom type or function that will be passed the direct response\n:keyword str continuation_token: A continuation token to restart a poller from a saved state.\n:keyword polling: True for ARMPolling, False for no polling, or a\n polling object for personal polling strategy\n:paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod\n:keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.\n:return: An instance of AsyncLROPoller that returns either SelectiveKeyRestoreOperation or the result of cls(response)\n:rtype: ~azure.core.polling.AsyncLROPoller[~azure.keyvault.v7_2.models.SelectiveKeyRestoreOperation]\n:raises ~azure.core.exceptions.HttpResponseError:\n\"\"\"" - }, - "call": "vault_base_url, key_name, restore_blob_details" - } - }, - "sync_imports": "{\"regular\": {\"azurecore\": {\"azure.core.exceptions\": [\"HttpResponseError\", \"ResourceExistsError\", \"ResourceNotFoundError\", \"map_error\"], \"azure.core.pipeline\": [\"PipelineResponse\"], \"azure.core.pipeline.transport\": [\"HttpRequest\", \"HttpResponse\"], \"azure.core.polling\": [\"LROPoller\", \"NoPolling\", \"PollingMethod\"], \"azure.core.polling.base_polling\": [\"LROBasePolling\"]}, \"stdlib\": {\"warnings\": [null]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Callable\", \"Dict\", \"Generic\", \"Optional\", \"TypeVar\", \"Union\"]}}}", - "async_imports": "{\"regular\": {\"azurecore\": {\"azure.core.exceptions\": [\"HttpResponseError\", \"ResourceExistsError\", \"ResourceNotFoundError\", \"map_error\"], \"azure.core.pipeline\": [\"PipelineResponse\"], \"azure.core.pipeline.transport\": [\"AsyncHttpResponse\", \"HttpRequest\"], \"azure.core.polling\": [\"AsyncLROPoller\", \"AsyncNoPolling\", \"AsyncPollingMethod\"], \"azure.core.polling.async_base_polling\": [\"AsyncLROBasePolling\"]}, \"stdlib\": {\"warnings\": [null]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Callable\", \"Dict\", \"Generic\", \"Optional\", \"TypeVar\", \"Union\"]}}}" -} \ No newline at end of file diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/__init__.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/__init__.py index 71ceadebe430..0d937de5d8f5 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/__init__.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/__init__.py @@ -6,5 +6,5 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from ._key_vault_client_async import KeyVaultClient +from ._key_vault_client import KeyVaultClient __all__ = ['KeyVaultClient'] diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/_configuration_async.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/_configuration.py similarity index 100% rename from sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/_configuration_async.py rename to sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/_configuration.py diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/_key_vault_client_async.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/_key_vault_client.py similarity index 87% rename from sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/_key_vault_client_async.py rename to sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/_key_vault_client.py index 9b3ec815b8e8..b707722e518e 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/_key_vault_client_async.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/_key_vault_client.py @@ -11,10 +11,10 @@ from azure.core import AsyncPipelineClient from msrest import Deserializer, Serializer -from ._configuration_async import KeyVaultClientConfiguration -from .operations_async import KeyVaultClientOperationsMixin -from .operations_async import RoleDefinitionsOperations -from .operations_async import RoleAssignmentsOperations +from ._configuration import KeyVaultClientConfiguration +from .operations import RoleDefinitionsOperations +from .operations import RoleAssignmentsOperations +from .operations import KeyVaultClientOperationsMixin from .. import models @@ -22,9 +22,9 @@ class KeyVaultClient(KeyVaultClientOperationsMixin): """The key vault client performs cryptographic key operations and vault operations against the Key Vault service. :ivar role_definitions: RoleDefinitionsOperations operations - :vartype role_definitions: azure.keyvault.v7_2.aio.operations_async.RoleDefinitionsOperations + :vartype role_definitions: azure.keyvault.v7_2.aio.operations.RoleDefinitionsOperations :ivar role_assignments: RoleAssignmentsOperations operations - :vartype role_assignments: azure.keyvault.v7_2.aio.operations_async.RoleAssignmentsOperations + :vartype role_assignments: azure.keyvault.v7_2.aio.operations.RoleAssignmentsOperations :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. """ diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations/__init__.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations/__init__.py new file mode 100644 index 000000000000..f871fcce6e3a --- /dev/null +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations/__init__.py @@ -0,0 +1,17 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from ._role_definitions_operations import RoleDefinitionsOperations +from ._role_assignments_operations import RoleAssignmentsOperations +from ._key_vault_client_operations import KeyVaultClientOperationsMixin + +__all__ = [ + 'RoleDefinitionsOperations', + 'RoleAssignmentsOperations', + 'KeyVaultClientOperationsMixin', +] diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations_async/_key_vault_client_operations_async.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations/_key_vault_client_operations.py similarity index 82% rename from sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations_async/_key_vault_client_operations_async.py rename to sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations/_key_vault_client_operations.py index 2aa256e4d1b0..7e4a177be588 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations_async/_key_vault_client_operations_async.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations/_key_vault_client_operations.py @@ -8,13 +8,13 @@ from typing import Any, Callable, Dict, Generic, Optional, TypeVar, Union import warnings -from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.pipeline import PipelineResponse from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod from azure.core.polling.async_base_polling import AsyncLROBasePolling -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -24,14 +24,17 @@ class KeyVaultClientOperationsMixin: async def _full_backup_initial( self, vault_base_url: str, - azure_storage_blob_container_uri: Optional["models.SASTokenParameter"] = None, + azure_storage_blob_container_uri: Optional["_models.SASTokenParameter"] = None, **kwargs - ) -> "models.FullBackupOperation": - cls = kwargs.pop('cls', None) # type: ClsType["models.FullBackupOperation"] - error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + ) -> "_models.FullBackupOperation": + cls = kwargs.pop('cls', None) # type: ClsType["_models.FullBackupOperation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } error_map.update(kwargs.pop('error_map', {})) api_version = "7.2-preview" content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" # Construct URL url = self._full_backup_initial.metadata['url'] # type: ignore @@ -47,7 +50,7 @@ async def _full_backup_initial( # Construct headers header_parameters = {} # type: Dict[str, Any] header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = 'application/json' + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') body_content_kwargs = {} # type: Dict[str, Any] if azure_storage_blob_container_uri is not None: @@ -56,13 +59,12 @@ async def _full_backup_initial( body_content = None body_content_kwargs['content'] = body_content request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response if response.status_code not in [202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) response_headers = {} @@ -79,9 +81,9 @@ async def _full_backup_initial( async def begin_full_backup( self, vault_base_url: str, - azure_storage_blob_container_uri: Optional["models.SASTokenParameter"] = None, + azure_storage_blob_container_uri: Optional["_models.SASTokenParameter"] = None, **kwargs - ) -> AsyncLROPoller["models.FullBackupOperation"]: + ) -> AsyncLROPoller["_models.FullBackupOperation"]: """Creates a full backup using a user-provided SAS token to an Azure blob storage container. :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. @@ -92,8 +94,8 @@ async def begin_full_backup( :type azure_storage_blob_container_uri: ~azure.keyvault.v7_2.models.SASTokenParameter :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: True for ARMPolling, False for no polling, or a - polling object for personal polling strategy + :keyword polling: Pass in True if you'd like the AsyncLROBasePolling polling method, + False for no polling, or your own initialized polling object for a personal polling strategy. :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either FullBackupOperation or the result of cls(response) @@ -101,7 +103,7 @@ async def begin_full_backup( :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', False) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.FullBackupOperation"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FullBackupOperation"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -129,7 +131,11 @@ def get_long_running_output(pipeline_response): return cls(pipeline_response, deserialized, response_headers) return deserialized - if polling is True: polling_method = AsyncLROBasePolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, **kwargs) + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + } + + if polling is True: polling_method = AsyncLROBasePolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) elif polling is False: polling_method = AsyncNoPolling() else: polling_method = polling if cont_token: @@ -148,7 +154,7 @@ async def full_backup_status( vault_base_url: str, job_id: str, **kwargs - ) -> "models.FullBackupOperation": + ) -> "_models.FullBackupOperation": """Returns the status of full backup operation. :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. @@ -160,10 +166,13 @@ async def full_backup_status( :rtype: ~azure.keyvault.v7_2.models.FullBackupOperation :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.FullBackupOperation"] - error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + cls = kwargs.pop('cls', None) # type: ClsType["_models.FullBackupOperation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } error_map.update(kwargs.pop('error_map', {})) api_version = "7.2-preview" + accept = "application/json" # Construct URL url = self.full_backup_status.metadata['url'] # type: ignore @@ -179,7 +188,7 @@ async def full_backup_status( # Construct headers header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') request = self._client.get(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) @@ -187,7 +196,7 @@ async def full_backup_status( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) deserialized = self._deserialize('FullBackupOperation', pipeline_response) @@ -201,14 +210,17 @@ async def full_backup_status( async def _full_restore_operation_initial( self, vault_base_url: str, - restore_blob_details: Optional["models.RestoreOperationParameters"] = None, + restore_blob_details: Optional["_models.RestoreOperationParameters"] = None, **kwargs - ) -> "models.RestoreOperation": - cls = kwargs.pop('cls', None) # type: ClsType["models.RestoreOperation"] - error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + ) -> "_models.RestoreOperation": + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestoreOperation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } error_map.update(kwargs.pop('error_map', {})) api_version = "7.2-preview" content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" # Construct URL url = self._full_restore_operation_initial.metadata['url'] # type: ignore @@ -224,7 +236,7 @@ async def _full_restore_operation_initial( # Construct headers header_parameters = {} # type: Dict[str, Any] header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = 'application/json' + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') body_content_kwargs = {} # type: Dict[str, Any] if restore_blob_details is not None: @@ -233,13 +245,12 @@ async def _full_restore_operation_initial( body_content = None body_content_kwargs['content'] = body_content request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response if response.status_code not in [202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) response_headers = {} @@ -256,9 +267,9 @@ async def _full_restore_operation_initial( async def begin_full_restore_operation( self, vault_base_url: str, - restore_blob_details: Optional["models.RestoreOperationParameters"] = None, + restore_blob_details: Optional["_models.RestoreOperationParameters"] = None, **kwargs - ) -> AsyncLROPoller["models.RestoreOperation"]: + ) -> AsyncLROPoller["_models.RestoreOperation"]: """Restores all key materials using the SAS token pointing to a previously stored Azure Blob storage backup folder. @@ -269,8 +280,8 @@ async def begin_full_restore_operation( :type restore_blob_details: ~azure.keyvault.v7_2.models.RestoreOperationParameters :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: True for ARMPolling, False for no polling, or a - polling object for personal polling strategy + :keyword polling: Pass in True if you'd like the AsyncLROBasePolling polling method, + False for no polling, or your own initialized polling object for a personal polling strategy. :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either RestoreOperation or the result of cls(response) @@ -278,7 +289,7 @@ async def begin_full_restore_operation( :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', False) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.RestoreOperation"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestoreOperation"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -306,7 +317,11 @@ def get_long_running_output(pipeline_response): return cls(pipeline_response, deserialized, response_headers) return deserialized - if polling is True: polling_method = AsyncLROBasePolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, **kwargs) + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + } + + if polling is True: polling_method = AsyncLROBasePolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) elif polling is False: polling_method = AsyncNoPolling() else: polling_method = polling if cont_token: @@ -325,7 +340,7 @@ async def restore_status( vault_base_url: str, job_id: str, **kwargs - ) -> "models.RestoreOperation": + ) -> "_models.RestoreOperation": """Returns the status of restore operation. :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. @@ -337,10 +352,13 @@ async def restore_status( :rtype: ~azure.keyvault.v7_2.models.RestoreOperation :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.RestoreOperation"] - error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestoreOperation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } error_map.update(kwargs.pop('error_map', {})) api_version = "7.2-preview" + accept = "application/json" # Construct URL url = self.restore_status.metadata['url'] # type: ignore @@ -356,7 +374,7 @@ async def restore_status( # Construct headers header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') request = self._client.get(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) @@ -364,7 +382,7 @@ async def restore_status( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) deserialized = self._deserialize('RestoreOperation', pipeline_response) @@ -379,14 +397,17 @@ async def _selective_key_restore_operation_initial( self, vault_base_url: str, key_name: str, - restore_blob_details: Optional["models.SelectiveKeyRestoreOperationParameters"] = None, + restore_blob_details: Optional["_models.SelectiveKeyRestoreOperationParameters"] = None, **kwargs - ) -> "models.SelectiveKeyRestoreOperation": - cls = kwargs.pop('cls', None) # type: ClsType["models.SelectiveKeyRestoreOperation"] - error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + ) -> "_models.SelectiveKeyRestoreOperation": + cls = kwargs.pop('cls', None) # type: ClsType["_models.SelectiveKeyRestoreOperation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } error_map.update(kwargs.pop('error_map', {})) api_version = "7.2-preview" content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" # Construct URL url = self._selective_key_restore_operation_initial.metadata['url'] # type: ignore @@ -403,7 +424,7 @@ async def _selective_key_restore_operation_initial( # Construct headers header_parameters = {} # type: Dict[str, Any] header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = 'application/json' + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') body_content_kwargs = {} # type: Dict[str, Any] if restore_blob_details is not None: @@ -412,13 +433,12 @@ async def _selective_key_restore_operation_initial( body_content = None body_content_kwargs['content'] = body_content request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response if response.status_code not in [202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) response_headers = {} @@ -436,9 +456,9 @@ async def begin_selective_key_restore_operation( self, vault_base_url: str, key_name: str, - restore_blob_details: Optional["models.SelectiveKeyRestoreOperationParameters"] = None, + restore_blob_details: Optional["_models.SelectiveKeyRestoreOperationParameters"] = None, **kwargs - ) -> AsyncLROPoller["models.SelectiveKeyRestoreOperation"]: + ) -> AsyncLROPoller["_models.SelectiveKeyRestoreOperation"]: """Restores all key versions of a given key using user supplied SAS token pointing to a previously stored Azure Blob storage backup folder. @@ -451,8 +471,8 @@ async def begin_selective_key_restore_operation( :type restore_blob_details: ~azure.keyvault.v7_2.models.SelectiveKeyRestoreOperationParameters :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: True for ARMPolling, False for no polling, or a - polling object for personal polling strategy + :keyword polling: Pass in True if you'd like the AsyncLROBasePolling polling method, + False for no polling, or your own initialized polling object for a personal polling strategy. :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of AsyncLROPoller that returns either SelectiveKeyRestoreOperation or the result of cls(response) @@ -460,7 +480,7 @@ async def begin_selective_key_restore_operation( :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', False) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.SelectiveKeyRestoreOperation"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.SelectiveKeyRestoreOperation"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -489,7 +509,12 @@ def get_long_running_output(pipeline_response): return cls(pipeline_response, deserialized, response_headers) return deserialized - if polling is True: polling_method = AsyncLROBasePolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, **kwargs) + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + } + + if polling is True: polling_method = AsyncLROBasePolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) elif polling is False: polling_method = AsyncNoPolling() else: polling_method = polling if cont_token: diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations_async/_role_assignments_operations_async.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations/_role_assignments_operations.py similarity index 86% rename from sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations_async/_role_assignments_operations_async.py rename to sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations/_role_assignments_operations.py index 156ca54342fa..5f64f7441b3b 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations_async/_role_assignments_operations_async.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations/_role_assignments_operations.py @@ -9,11 +9,11 @@ import warnings from azure.core.async_paging import AsyncItemPaged, AsyncList -from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.pipeline import PipelineResponse from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest -from ... import models +from ... import models as _models T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -32,7 +32,7 @@ class RoleAssignmentsOperations: :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer) -> None: self._client = client @@ -46,7 +46,7 @@ async def delete( scope: str, role_assignment_name: str, **kwargs - ) -> "models.RoleAssignment": + ) -> "_models.RoleAssignment": """Deletes a role assignment. :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. @@ -60,10 +60,13 @@ async def delete( :rtype: ~azure.keyvault.v7_2.models.RoleAssignment :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.RoleAssignment"] - error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleAssignment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } error_map.update(kwargs.pop('error_map', {})) api_version = "7.2-preview" + accept = "application/json" # Construct URL url = self.delete.metadata['url'] # type: ignore @@ -80,7 +83,7 @@ async def delete( # Construct headers header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') request = self._client.delete(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) @@ -88,7 +91,7 @@ async def delete( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) deserialized = self._deserialize('RoleAssignment', pipeline_response) @@ -104,9 +107,9 @@ async def create( vault_base_url: str, scope: str, role_assignment_name: str, - parameters: "models.RoleAssignmentCreateParameters", + parameters: "_models.RoleAssignmentCreateParameters", **kwargs - ) -> "models.RoleAssignment": + ) -> "_models.RoleAssignment": """Creates a role assignment. :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. @@ -123,11 +126,14 @@ async def create( :rtype: ~azure.keyvault.v7_2.models.RoleAssignment :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.RoleAssignment"] - error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleAssignment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } error_map.update(kwargs.pop('error_map', {})) api_version = "7.2-preview" content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" # Construct URL url = self.create.metadata['url'] # type: ignore @@ -145,19 +151,18 @@ async def create( # Construct headers header_parameters = {} # type: Dict[str, Any] header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = 'application/json' + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(parameters, 'RoleAssignmentCreateParameters') body_content_kwargs['content'] = body_content request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response if response.status_code not in [201]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) deserialized = self._deserialize('RoleAssignment', pipeline_response) @@ -174,7 +179,7 @@ async def get( scope: str, role_assignment_name: str, **kwargs - ) -> "models.RoleAssignment": + ) -> "_models.RoleAssignment": """Get the specified role assignment. :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. @@ -188,10 +193,13 @@ async def get( :rtype: ~azure.keyvault.v7_2.models.RoleAssignment :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.RoleAssignment"] - error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleAssignment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } error_map.update(kwargs.pop('error_map', {})) api_version = "7.2-preview" + accept = "application/json" # Construct URL url = self.get.metadata['url'] # type: ignore @@ -208,7 +216,7 @@ async def get( # Construct headers header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') request = self._client.get(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) @@ -216,7 +224,7 @@ async def get( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) deserialized = self._deserialize('RoleAssignment', pipeline_response) @@ -233,7 +241,7 @@ def list_for_scope( scope: str, filter: Optional[str] = None, **kwargs - ) -> AsyncIterable["models.RoleAssignmentListResult"]: + ) -> AsyncIterable["_models.RoleAssignmentListResult"]: """Gets role assignments for a scope. :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. @@ -249,15 +257,18 @@ def list_for_scope( :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.keyvault.v7_2.models.RoleAssignmentListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.RoleAssignmentListResult"] - error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleAssignmentListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } error_map.update(kwargs.pop('error_map', {})) api_version = "7.2-preview" + accept = "application/json" def prepare_request(next_link=None): # Construct headers header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') if not next_link: # Construct URL @@ -299,7 +310,7 @@ async def get_next(next_link=None): response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize(models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, model=error) diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations_async/_role_definitions_operations_async.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations/_role_definitions_operations.py similarity index 93% rename from sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations_async/_role_definitions_operations_async.py rename to sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations/_role_definitions_operations.py index b804eadacd3c..0d4bd31131aa 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations_async/_role_definitions_operations_async.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations/_role_definitions_operations.py @@ -1,6 +1,8 @@ # coding=utf-8 # -------------------------------------------------------------------------- -# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.0.6306, generator: {generator}) +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar @@ -23,7 +25,7 @@ class RoleDefinitionsOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~key_vault_client.models + :type models: ~azure.keyvault.v7_2.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -55,7 +57,7 @@ async def delete( :type role_definition_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: RoleDefinition, or the result of cls(response) - :rtype: ~key_vault_client.models.RoleDefinition + :rtype: ~azure.keyvault.v7_2.models.RoleDefinition :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleDefinition"] @@ -89,7 +91,7 @@ async def delete( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) deserialized = self._deserialize('RoleDefinition', pipeline_response) @@ -119,10 +121,10 @@ async def create_or_update( valid GUID. :type role_definition_name: str :param parameters: Parameters for the role definition. - :type parameters: ~key_vault_client.models.RoleDefinitionCreateParameters + :type parameters: ~azure.keyvault.v7_2.models.RoleDefinitionCreateParameters :keyword callable cls: A custom type or function that will be passed the direct response :return: RoleDefinition, or the result of cls(response) - :rtype: ~key_vault_client.models.RoleDefinition + :rtype: ~azure.keyvault.v7_2.models.RoleDefinition :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleDefinition"] @@ -161,7 +163,7 @@ async def create_or_update( if response.status_code not in [201]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) deserialized = self._deserialize('RoleDefinition', pipeline_response) @@ -189,7 +191,7 @@ async def get( :type role_definition_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: RoleDefinition, or the result of cls(response) - :rtype: ~key_vault_client.models.RoleDefinition + :rtype: ~azure.keyvault.v7_2.models.RoleDefinition :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleDefinition"] @@ -223,7 +225,7 @@ async def get( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) deserialized = self._deserialize('RoleDefinition', pipeline_response) @@ -252,7 +254,7 @@ def list( :type filter: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either RoleDefinitionListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~key_vault_client.models.RoleDefinitionListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.keyvault.v7_2.models.RoleDefinitionListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleDefinitionListResult"] @@ -308,7 +310,7 @@ async def get_next(next_link=None): response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize(_models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, model=error) diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations_async/__init__.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations_async/__init__.py deleted file mode 100644 index e7870cbaf603..000000000000 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/aio/operations_async/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.0.6306, generator: {generator}) -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from ._role_definitions_operations_async import RoleDefinitionsOperations -from ._role_assignments_operations_async import RoleAssignmentsOperations -from ._key_vault_client_operations_async import KeyVaultClientOperationsMixin - -__all__ = [ - 'RoleDefinitionsOperations', - 'RoleAssignmentsOperations', - 'KeyVaultClientOperationsMixin', -] diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/models/__init__.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/models/__init__.py index e65cfcf3dde4..47bde45ad659 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/models/__init__.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/models/__init__.py @@ -1,6 +1,8 @@ # coding=utf-8 # -------------------------------------------------------------------------- -# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.0.6306, generator: {generator}) +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/models/_key_vault_client_enums.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/models/_key_vault_client_enums.py index 6130c70fe5ef..e114121d7fed 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/models/_key_vault_client_enums.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/models/_key_vault_client_enums.py @@ -1,6 +1,8 @@ # coding=utf-8 # -------------------------------------------------------------------------- -# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.0.6306, generator: {generator}) +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/models/_models.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/models/_models.py index ab47754e5607..e5e5852604a9 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/models/_models.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/models/_models.py @@ -1,6 +1,8 @@ # coding=utf-8 # -------------------------------------------------------------------------- -# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.0.6306, generator: {generator}) +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- @@ -60,7 +62,7 @@ class Error(msrest.serialization.Model): :ivar message: The error message. :vartype message: str :ivar inner_error: The key vault server error. - :vartype inner_error: ~key_vault_client.models.Error + :vartype inner_error: ~azure.keyvault.v7_2.models.Error """ _validation = { @@ -93,7 +95,7 @@ class FullBackupOperation(msrest.serialization.Model): :param status_details: The status details of backup operation. :type status_details: str :param error: Error encountered, if any, during the full backup operation. - :type error: ~key_vault_client.models.Error + :type error: ~azure.keyvault.v7_2.models.Error :param start_time: The start time of the backup operation in UTC. :type start_time: ~datetime.datetime :param end_time: The end time of the backup operation in UTC. @@ -135,7 +137,7 @@ class KeyVaultError(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar error: The key vault server error. - :vartype error: ~key_vault_client.models.Error + :vartype error: ~azure.keyvault.v7_2.models.Error """ _validation = { @@ -163,10 +165,10 @@ class Permission(msrest.serialization.Model): other role definitions assigned to a principal. :type not_actions: list[str] :param data_actions: Data action permissions that are granted. - :type data_actions: list[str or ~key_vault_client.models.DataAction] + :type data_actions: list[str or ~azure.keyvault.v7_2.models.DataAction] :param not_data_actions: Data action permissions that are excluded but not denied. They may be granted by other role definitions assigned to a principal. - :type not_data_actions: list[str or ~key_vault_client.models.DataAction] + :type not_data_actions: list[str or ~azure.keyvault.v7_2.models.DataAction] """ _attribute_map = { @@ -195,7 +197,7 @@ class RestoreOperation(msrest.serialization.Model): :param status_details: The status details of restore operation. :type status_details: str :param error: Error encountered, if any, during the restore operation. - :type error: ~key_vault_client.models.Error + :type error: ~azure.keyvault.v7_2.models.Error :param job_id: Identifier for the restore operation. :type job_id: str :param start_time: The start time of the restore operation. @@ -233,7 +235,7 @@ class RestoreOperationParameters(msrest.serialization.Model): :param sas_token_parameters: Required. SAS token parameter object containing Azure storage resourceUri and token. - :type sas_token_parameters: ~key_vault_client.models.SASTokenParameter + :type sas_token_parameters: ~azure.keyvault.v7_2.models.SASTokenParameter :param folder_to_restore: Required. The Folder name of the blob where the previous successful full backup was stored. :type folder_to_restore: str @@ -270,7 +272,7 @@ class RoleAssignment(msrest.serialization.Model): :ivar type: The role assignment type. :vartype type: str :param properties: Role assignment properties. - :type properties: ~key_vault_client.models.RoleAssignmentPropertiesWithScope + :type properties: ~azure.keyvault.v7_2.models.RoleAssignmentPropertiesWithScope """ _validation = { @@ -303,7 +305,7 @@ class RoleAssignmentCreateParameters(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. :param properties: Required. Role assignment properties. - :type properties: ~key_vault_client.models.RoleAssignmentProperties + :type properties: ~azure.keyvault.v7_2.models.RoleAssignmentProperties """ _validation = { @@ -345,7 +347,7 @@ class RoleAssignmentListResult(msrest.serialization.Model): """Role assignment list operation result. :param value: Role assignment list. - :type value: list[~key_vault_client.models.RoleAssignment] + :type value: list[~azure.keyvault.v7_2.models.RoleAssignment] :param next_link: The URL to use for getting the next set of results. :type next_link: str """ @@ -399,7 +401,7 @@ class RoleAssignmentPropertiesWithScope(msrest.serialization.Model): """Role assignment properties with scope. :param scope: The role scope. Possible values include: "/", "/keys". - :type scope: str or ~key_vault_client.models.RoleScope + :type scope: str or ~azure.keyvault.v7_2.models.RoleScope :param role_definition_id: The role definition ID. :type role_definition_id: str :param principal_id: The principal ID. @@ -433,17 +435,17 @@ class RoleDefinition(msrest.serialization.Model): :vartype name: str :ivar type: The role definition type. Possible values include: "Microsoft.Authorization/roleDefinitions". - :vartype type: str or ~key_vault_client.models.RoleDefinitionType + :vartype type: str or ~azure.keyvault.v7_2.models.RoleDefinitionType :param role_name: The role name. :type role_name: str :param description: The role definition description. :type description: str :param role_type: The role type. Possible values include: "AKVBuiltInRole", "CustomRole". - :type role_type: str or ~key_vault_client.models.RoleType + :type role_type: str or ~azure.keyvault.v7_2.models.RoleType :param permissions: Role definition permissions. - :type permissions: list[~key_vault_client.models.Permission] + :type permissions: list[~azure.keyvault.v7_2.models.Permission] :param assignable_scopes: Role definition assignable scopes. - :type assignable_scopes: list[str or ~key_vault_client.models.RoleScope] + :type assignable_scopes: list[str or ~azure.keyvault.v7_2.models.RoleScope] """ _validation = { @@ -484,7 +486,7 @@ class RoleDefinitionCreateParameters(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. :param properties: Required. Role definition properties. - :type properties: ~key_vault_client.models.RoleDefinitionProperties + :type properties: ~azure.keyvault.v7_2.models.RoleDefinitionProperties """ _validation = { @@ -526,7 +528,7 @@ class RoleDefinitionListResult(msrest.serialization.Model): """Role definition list operation result. :param value: Role definition list. - :type value: list[~key_vault_client.models.RoleDefinition] + :type value: list[~azure.keyvault.v7_2.models.RoleDefinition] :param next_link: The URL to use for getting the next set of results. :type next_link: str """ @@ -553,11 +555,11 @@ class RoleDefinitionProperties(msrest.serialization.Model): :param description: The role definition description. :type description: str :param role_type: The role type. Possible values include: "AKVBuiltInRole", "CustomRole". - :type role_type: str or ~key_vault_client.models.RoleType + :type role_type: str or ~azure.keyvault.v7_2.models.RoleType :param permissions: Role definition permissions. - :type permissions: list[~key_vault_client.models.Permission] + :type permissions: list[~azure.keyvault.v7_2.models.Permission] :param assignable_scopes: Role definition assignable scopes. - :type assignable_scopes: list[str or ~key_vault_client.models.RoleScope] + :type assignable_scopes: list[str or ~azure.keyvault.v7_2.models.RoleScope] """ _attribute_map = { @@ -618,7 +620,7 @@ class SelectiveKeyRestoreOperation(msrest.serialization.Model): :param status_details: The status details of restore operation. :type status_details: str :param error: Error encountered, if any, during the selective key restore operation. - :type error: ~key_vault_client.models.Error + :type error: ~azure.keyvault.v7_2.models.Error :param job_id: Identifier for the selective key restore operation. :type job_id: str :param start_time: The start time of the restore operation. @@ -656,7 +658,7 @@ class SelectiveKeyRestoreOperationParameters(msrest.serialization.Model): :param sas_token_parameters: Required. SAS token parameter object containing Azure storage resourceUri and token. - :type sas_token_parameters: ~key_vault_client.models.SASTokenParameter + :type sas_token_parameters: ~azure.keyvault.v7_2.models.SASTokenParameter :param folder: Required. The Folder name of the blob where the previous successful full backup was stored. :type folder: str diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/models/_models_py3.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/models/_models_py3.py index 802d4b7f6dff..932a41b85fea 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/models/_models_py3.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/models/_models_py3.py @@ -1,6 +1,8 @@ # coding=utf-8 # -------------------------------------------------------------------------- -# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.0.6306, generator: {generator}) +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- @@ -69,7 +71,7 @@ class Error(msrest.serialization.Model): :ivar message: The error message. :vartype message: str :ivar inner_error: The key vault server error. - :vartype inner_error: ~key_vault_client.models.Error + :vartype inner_error: ~azure.keyvault.v7_2.models.Error """ _validation = { @@ -102,7 +104,7 @@ class FullBackupOperation(msrest.serialization.Model): :param status_details: The status details of backup operation. :type status_details: str :param error: Error encountered, if any, during the full backup operation. - :type error: ~key_vault_client.models.Error + :type error: ~azure.keyvault.v7_2.models.Error :param start_time: The start time of the backup operation in UTC. :type start_time: ~datetime.datetime :param end_time: The end time of the backup operation in UTC. @@ -152,7 +154,7 @@ class KeyVaultError(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar error: The key vault server error. - :vartype error: ~key_vault_client.models.Error + :vartype error: ~azure.keyvault.v7_2.models.Error """ _validation = { @@ -180,10 +182,10 @@ class Permission(msrest.serialization.Model): other role definitions assigned to a principal. :type not_actions: list[str] :param data_actions: Data action permissions that are granted. - :type data_actions: list[str or ~key_vault_client.models.DataAction] + :type data_actions: list[str or ~azure.keyvault.v7_2.models.DataAction] :param not_data_actions: Data action permissions that are excluded but not denied. They may be granted by other role definitions assigned to a principal. - :type not_data_actions: list[str or ~key_vault_client.models.DataAction] + :type not_data_actions: list[str or ~azure.keyvault.v7_2.models.DataAction] """ _attribute_map = { @@ -217,7 +219,7 @@ class RestoreOperation(msrest.serialization.Model): :param status_details: The status details of restore operation. :type status_details: str :param error: Error encountered, if any, during the restore operation. - :type error: ~key_vault_client.models.Error + :type error: ~azure.keyvault.v7_2.models.Error :param job_id: Identifier for the restore operation. :type job_id: str :param start_time: The start time of the restore operation. @@ -262,7 +264,7 @@ class RestoreOperationParameters(msrest.serialization.Model): :param sas_token_parameters: Required. SAS token parameter object containing Azure storage resourceUri and token. - :type sas_token_parameters: ~key_vault_client.models.SASTokenParameter + :type sas_token_parameters: ~azure.keyvault.v7_2.models.SASTokenParameter :param folder_to_restore: Required. The Folder name of the blob where the previous successful full backup was stored. :type folder_to_restore: str @@ -302,7 +304,7 @@ class RoleAssignment(msrest.serialization.Model): :ivar type: The role assignment type. :vartype type: str :param properties: Role assignment properties. - :type properties: ~key_vault_client.models.RoleAssignmentPropertiesWithScope + :type properties: ~azure.keyvault.v7_2.models.RoleAssignmentPropertiesWithScope """ _validation = { @@ -337,7 +339,7 @@ class RoleAssignmentCreateParameters(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. :param properties: Required. Role assignment properties. - :type properties: ~key_vault_client.models.RoleAssignmentProperties + :type properties: ~azure.keyvault.v7_2.models.RoleAssignmentProperties """ _validation = { @@ -383,7 +385,7 @@ class RoleAssignmentListResult(msrest.serialization.Model): """Role assignment list operation result. :param value: Role assignment list. - :type value: list[~key_vault_client.models.RoleAssignment] + :type value: list[~azure.keyvault.v7_2.models.RoleAssignment] :param next_link: The URL to use for getting the next set of results. :type next_link: str """ @@ -443,7 +445,7 @@ class RoleAssignmentPropertiesWithScope(msrest.serialization.Model): """Role assignment properties with scope. :param scope: The role scope. Possible values include: "/", "/keys". - :type scope: str or ~key_vault_client.models.RoleScope + :type scope: str or ~azure.keyvault.v7_2.models.RoleScope :param role_definition_id: The role definition ID. :type role_definition_id: str :param principal_id: The principal ID. @@ -481,17 +483,17 @@ class RoleDefinition(msrest.serialization.Model): :vartype name: str :ivar type: The role definition type. Possible values include: "Microsoft.Authorization/roleDefinitions". - :vartype type: str or ~key_vault_client.models.RoleDefinitionType + :vartype type: str or ~azure.keyvault.v7_2.models.RoleDefinitionType :param role_name: The role name. :type role_name: str :param description: The role definition description. :type description: str :param role_type: The role type. Possible values include: "AKVBuiltInRole", "CustomRole". - :type role_type: str or ~key_vault_client.models.RoleType + :type role_type: str or ~azure.keyvault.v7_2.models.RoleType :param permissions: Role definition permissions. - :type permissions: list[~key_vault_client.models.Permission] + :type permissions: list[~azure.keyvault.v7_2.models.Permission] :param assignable_scopes: Role definition assignable scopes. - :type assignable_scopes: list[str or ~key_vault_client.models.RoleScope] + :type assignable_scopes: list[str or ~azure.keyvault.v7_2.models.RoleScope] """ _validation = { @@ -538,7 +540,7 @@ class RoleDefinitionCreateParameters(msrest.serialization.Model): All required parameters must be populated in order to send to Azure. :param properties: Required. Role definition properties. - :type properties: ~key_vault_client.models.RoleDefinitionProperties + :type properties: ~azure.keyvault.v7_2.models.RoleDefinitionProperties """ _validation = { @@ -584,7 +586,7 @@ class RoleDefinitionListResult(msrest.serialization.Model): """Role definition list operation result. :param value: Role definition list. - :type value: list[~key_vault_client.models.RoleDefinition] + :type value: list[~azure.keyvault.v7_2.models.RoleDefinition] :param next_link: The URL to use for getting the next set of results. :type next_link: str """ @@ -614,11 +616,11 @@ class RoleDefinitionProperties(msrest.serialization.Model): :param description: The role definition description. :type description: str :param role_type: The role type. Possible values include: "AKVBuiltInRole", "CustomRole". - :type role_type: str or ~key_vault_client.models.RoleType + :type role_type: str or ~azure.keyvault.v7_2.models.RoleType :param permissions: Role definition permissions. - :type permissions: list[~key_vault_client.models.Permission] + :type permissions: list[~azure.keyvault.v7_2.models.Permission] :param assignable_scopes: Role definition assignable scopes. - :type assignable_scopes: list[str or ~key_vault_client.models.RoleScope] + :type assignable_scopes: list[str or ~azure.keyvault.v7_2.models.RoleScope] """ _attribute_map = { @@ -688,7 +690,7 @@ class SelectiveKeyRestoreOperation(msrest.serialization.Model): :param status_details: The status details of restore operation. :type status_details: str :param error: Error encountered, if any, during the selective key restore operation. - :type error: ~key_vault_client.models.Error + :type error: ~azure.keyvault.v7_2.models.Error :param job_id: Identifier for the selective key restore operation. :type job_id: str :param start_time: The start time of the restore operation. @@ -733,7 +735,7 @@ class SelectiveKeyRestoreOperationParameters(msrest.serialization.Model): :param sas_token_parameters: Required. SAS token parameter object containing Azure storage resourceUri and token. - :type sas_token_parameters: ~key_vault_client.models.SASTokenParameter + :type sas_token_parameters: ~azure.keyvault.v7_2.models.SASTokenParameter :param folder: Required. The Folder name of the blob where the previous successful full backup was stored. :type folder: str diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/operations/__init__.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/operations/__init__.py index 45bbefb596c1..f871fcce6e3a 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/operations/__init__.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/operations/__init__.py @@ -1,6 +1,8 @@ # coding=utf-8 # -------------------------------------------------------------------------- -# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.0.6306, generator: {generator}) +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/operations/_key_vault_client_operations.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/operations/_key_vault_client_operations.py index 3c12ff62a347..e25461f9f99e 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/operations/_key_vault_client_operations.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/operations/_key_vault_client_operations.py @@ -8,13 +8,13 @@ from typing import TYPE_CHECKING import warnings -from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.pipeline import PipelineResponse from azure.core.pipeline.transport import HttpRequest, HttpResponse from azure.core.polling import LROPoller, NoPolling, PollingMethod from azure.core.polling.base_polling import LROBasePolling -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -28,15 +28,18 @@ class KeyVaultClientOperationsMixin(object): def _full_backup_initial( self, vault_base_url, # type: str - azure_storage_blob_container_uri=None, # type: Optional["models.SASTokenParameter"] + azure_storage_blob_container_uri=None, # type: Optional["_models.SASTokenParameter"] **kwargs # type: Any ): - # type: (...) -> "models.FullBackupOperation" - cls = kwargs.pop('cls', None) # type: ClsType["models.FullBackupOperation"] - error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + # type: (...) -> "_models.FullBackupOperation" + cls = kwargs.pop('cls', None) # type: ClsType["_models.FullBackupOperation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } error_map.update(kwargs.pop('error_map', {})) api_version = "7.2-preview" content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" # Construct URL url = self._full_backup_initial.metadata['url'] # type: ignore @@ -52,7 +55,7 @@ def _full_backup_initial( # Construct headers header_parameters = {} # type: Dict[str, Any] header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = 'application/json' + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') body_content_kwargs = {} # type: Dict[str, Any] if azure_storage_blob_container_uri is not None: @@ -61,13 +64,12 @@ def _full_backup_initial( body_content = None body_content_kwargs['content'] = body_content request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response if response.status_code not in [202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) response_headers = {} @@ -84,10 +86,10 @@ def _full_backup_initial( def begin_full_backup( self, vault_base_url, # type: str - azure_storage_blob_container_uri=None, # type: Optional["models.SASTokenParameter"] + azure_storage_blob_container_uri=None, # type: Optional["_models.SASTokenParameter"] **kwargs # type: Any ): - # type: (...) -> LROPoller["models.FullBackupOperation"] + # type: (...) -> LROPoller["_models.FullBackupOperation"] """Creates a full backup using a user-provided SAS token to an Azure blob storage container. :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. @@ -98,8 +100,8 @@ def begin_full_backup( :type azure_storage_blob_container_uri: ~azure.keyvault.v7_2.models.SASTokenParameter :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: True for ARMPolling, False for no polling, or a - polling object for personal polling strategy + :keyword polling: Pass in True if you'd like the LROBasePolling polling method, + False for no polling, or your own initialized polling object for a personal polling strategy. :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either FullBackupOperation or the result of cls(response) @@ -107,7 +109,7 @@ def begin_full_backup( :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', False) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.FullBackupOperation"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.FullBackupOperation"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -135,7 +137,11 @@ def get_long_running_output(pipeline_response): return cls(pipeline_response, deserialized, response_headers) return deserialized - if polling is True: polling_method = LROBasePolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, **kwargs) + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + } + + if polling is True: polling_method = LROBasePolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) elif polling is False: polling_method = NoPolling() else: polling_method = polling if cont_token: @@ -155,7 +161,7 @@ def full_backup_status( job_id, # type: str **kwargs # type: Any ): - # type: (...) -> "models.FullBackupOperation" + # type: (...) -> "_models.FullBackupOperation" """Returns the status of full backup operation. :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. @@ -167,10 +173,13 @@ def full_backup_status( :rtype: ~azure.keyvault.v7_2.models.FullBackupOperation :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.FullBackupOperation"] - error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + cls = kwargs.pop('cls', None) # type: ClsType["_models.FullBackupOperation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } error_map.update(kwargs.pop('error_map', {})) api_version = "7.2-preview" + accept = "application/json" # Construct URL url = self.full_backup_status.metadata['url'] # type: ignore @@ -186,7 +195,7 @@ def full_backup_status( # Construct headers header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') request = self._client.get(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) @@ -194,7 +203,7 @@ def full_backup_status( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) deserialized = self._deserialize('FullBackupOperation', pipeline_response) @@ -208,15 +217,18 @@ def full_backup_status( def _full_restore_operation_initial( self, vault_base_url, # type: str - restore_blob_details=None, # type: Optional["models.RestoreOperationParameters"] + restore_blob_details=None, # type: Optional["_models.RestoreOperationParameters"] **kwargs # type: Any ): - # type: (...) -> "models.RestoreOperation" - cls = kwargs.pop('cls', None) # type: ClsType["models.RestoreOperation"] - error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + # type: (...) -> "_models.RestoreOperation" + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestoreOperation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } error_map.update(kwargs.pop('error_map', {})) api_version = "7.2-preview" content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" # Construct URL url = self._full_restore_operation_initial.metadata['url'] # type: ignore @@ -232,7 +244,7 @@ def _full_restore_operation_initial( # Construct headers header_parameters = {} # type: Dict[str, Any] header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = 'application/json' + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') body_content_kwargs = {} # type: Dict[str, Any] if restore_blob_details is not None: @@ -241,13 +253,12 @@ def _full_restore_operation_initial( body_content = None body_content_kwargs['content'] = body_content request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response if response.status_code not in [202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) response_headers = {} @@ -264,10 +275,10 @@ def _full_restore_operation_initial( def begin_full_restore_operation( self, vault_base_url, # type: str - restore_blob_details=None, # type: Optional["models.RestoreOperationParameters"] + restore_blob_details=None, # type: Optional["_models.RestoreOperationParameters"] **kwargs # type: Any ): - # type: (...) -> LROPoller["models.RestoreOperation"] + # type: (...) -> LROPoller["_models.RestoreOperation"] """Restores all key materials using the SAS token pointing to a previously stored Azure Blob storage backup folder. @@ -278,8 +289,8 @@ def begin_full_restore_operation( :type restore_blob_details: ~azure.keyvault.v7_2.models.RestoreOperationParameters :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: True for ARMPolling, False for no polling, or a - polling object for personal polling strategy + :keyword polling: Pass in True if you'd like the LROBasePolling polling method, + False for no polling, or your own initialized polling object for a personal polling strategy. :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either RestoreOperation or the result of cls(response) @@ -287,7 +298,7 @@ def begin_full_restore_operation( :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', False) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.RestoreOperation"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestoreOperation"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -315,7 +326,11 @@ def get_long_running_output(pipeline_response): return cls(pipeline_response, deserialized, response_headers) return deserialized - if polling is True: polling_method = LROBasePolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, **kwargs) + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + } + + if polling is True: polling_method = LROBasePolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) elif polling is False: polling_method = NoPolling() else: polling_method = polling if cont_token: @@ -335,7 +350,7 @@ def restore_status( job_id, # type: str **kwargs # type: Any ): - # type: (...) -> "models.RestoreOperation" + # type: (...) -> "_models.RestoreOperation" """Returns the status of restore operation. :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. @@ -347,10 +362,13 @@ def restore_status( :rtype: ~azure.keyvault.v7_2.models.RestoreOperation :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.RestoreOperation"] - error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestoreOperation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } error_map.update(kwargs.pop('error_map', {})) api_version = "7.2-preview" + accept = "application/json" # Construct URL url = self.restore_status.metadata['url'] # type: ignore @@ -366,7 +384,7 @@ def restore_status( # Construct headers header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') request = self._client.get(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) @@ -374,7 +392,7 @@ def restore_status( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) deserialized = self._deserialize('RestoreOperation', pipeline_response) @@ -389,15 +407,18 @@ def _selective_key_restore_operation_initial( self, vault_base_url, # type: str key_name, # type: str - restore_blob_details=None, # type: Optional["models.SelectiveKeyRestoreOperationParameters"] + restore_blob_details=None, # type: Optional["_models.SelectiveKeyRestoreOperationParameters"] **kwargs # type: Any ): - # type: (...) -> "models.SelectiveKeyRestoreOperation" - cls = kwargs.pop('cls', None) # type: ClsType["models.SelectiveKeyRestoreOperation"] - error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + # type: (...) -> "_models.SelectiveKeyRestoreOperation" + cls = kwargs.pop('cls', None) # type: ClsType["_models.SelectiveKeyRestoreOperation"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } error_map.update(kwargs.pop('error_map', {})) api_version = "7.2-preview" content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" # Construct URL url = self._selective_key_restore_operation_initial.metadata['url'] # type: ignore @@ -414,7 +435,7 @@ def _selective_key_restore_operation_initial( # Construct headers header_parameters = {} # type: Dict[str, Any] header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = 'application/json' + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') body_content_kwargs = {} # type: Dict[str, Any] if restore_blob_details is not None: @@ -423,13 +444,12 @@ def _selective_key_restore_operation_initial( body_content = None body_content_kwargs['content'] = body_content request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response if response.status_code not in [202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) response_headers = {} @@ -447,10 +467,10 @@ def begin_selective_key_restore_operation( self, vault_base_url, # type: str key_name, # type: str - restore_blob_details=None, # type: Optional["models.SelectiveKeyRestoreOperationParameters"] + restore_blob_details=None, # type: Optional["_models.SelectiveKeyRestoreOperationParameters"] **kwargs # type: Any ): - # type: (...) -> LROPoller["models.SelectiveKeyRestoreOperation"] + # type: (...) -> LROPoller["_models.SelectiveKeyRestoreOperation"] """Restores all key versions of a given key using user supplied SAS token pointing to a previously stored Azure Blob storage backup folder. @@ -463,8 +483,8 @@ def begin_selective_key_restore_operation( :type restore_blob_details: ~azure.keyvault.v7_2.models.SelectiveKeyRestoreOperationParameters :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: True for ARMPolling, False for no polling, or a - polling object for personal polling strategy + :keyword polling: Pass in True if you'd like the LROBasePolling polling method, + False for no polling, or your own initialized polling object for a personal polling strategy. :paramtype polling: bool or ~azure.core.polling.PollingMethod :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. :return: An instance of LROPoller that returns either SelectiveKeyRestoreOperation or the result of cls(response) @@ -472,7 +492,7 @@ def begin_selective_key_restore_operation( :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', False) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.SelectiveKeyRestoreOperation"] + cls = kwargs.pop('cls', None) # type: ClsType["_models.SelectiveKeyRestoreOperation"] lro_delay = kwargs.pop( 'polling_interval', self._config.polling_interval @@ -501,7 +521,12 @@ def get_long_running_output(pipeline_response): return cls(pipeline_response, deserialized, response_headers) return deserialized - if polling is True: polling_method = LROBasePolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, **kwargs) + path_format_arguments = { + 'vaultBaseUrl': self._serialize.url("vault_base_url", vault_base_url, 'str', skip_quote=True), + 'keyName': self._serialize.url("key_name", key_name, 'str'), + } + + if polling is True: polling_method = LROBasePolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) elif polling is False: polling_method = NoPolling() else: polling_method = polling if cont_token: diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/operations/_role_assignments_operations.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/operations/_role_assignments_operations.py index eb04fd51c698..9aee72ea3e40 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/operations/_role_assignments_operations.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/operations/_role_assignments_operations.py @@ -8,12 +8,12 @@ from typing import TYPE_CHECKING import warnings -from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse from azure.core.pipeline.transport import HttpRequest, HttpResponse -from .. import models +from .. import models as _models if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -36,7 +36,7 @@ class RoleAssignmentsOperations(object): :param deserializer: An object model deserializer. """ - models = models + models = _models def __init__(self, client, config, serializer, deserializer): self._client = client @@ -51,7 +51,7 @@ def delete( role_assignment_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.RoleAssignment" + # type: (...) -> "_models.RoleAssignment" """Deletes a role assignment. :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. @@ -65,10 +65,13 @@ def delete( :rtype: ~azure.keyvault.v7_2.models.RoleAssignment :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.RoleAssignment"] - error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleAssignment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } error_map.update(kwargs.pop('error_map', {})) api_version = "7.2-preview" + accept = "application/json" # Construct URL url = self.delete.metadata['url'] # type: ignore @@ -85,7 +88,7 @@ def delete( # Construct headers header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') request = self._client.delete(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) @@ -93,7 +96,7 @@ def delete( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) deserialized = self._deserialize('RoleAssignment', pipeline_response) @@ -109,10 +112,10 @@ def create( vault_base_url, # type: str scope, # type: str role_assignment_name, # type: str - parameters, # type: "models.RoleAssignmentCreateParameters" + parameters, # type: "_models.RoleAssignmentCreateParameters" **kwargs # type: Any ): - # type: (...) -> "models.RoleAssignment" + # type: (...) -> "_models.RoleAssignment" """Creates a role assignment. :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. @@ -129,11 +132,14 @@ def create( :rtype: ~azure.keyvault.v7_2.models.RoleAssignment :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.RoleAssignment"] - error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleAssignment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } error_map.update(kwargs.pop('error_map', {})) api_version = "7.2-preview" content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" # Construct URL url = self.create.metadata['url'] # type: ignore @@ -151,19 +157,18 @@ def create( # Construct headers header_parameters = {} # type: Dict[str, Any] header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') - header_parameters['Accept'] = 'application/json' + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(parameters, 'RoleAssignmentCreateParameters') body_content_kwargs['content'] = body_content request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response if response.status_code not in [201]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) deserialized = self._deserialize('RoleAssignment', pipeline_response) @@ -181,7 +186,7 @@ def get( role_assignment_name, # type: str **kwargs # type: Any ): - # type: (...) -> "models.RoleAssignment" + # type: (...) -> "_models.RoleAssignment" """Get the specified role assignment. :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. @@ -195,10 +200,13 @@ def get( :rtype: ~azure.keyvault.v7_2.models.RoleAssignment :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.RoleAssignment"] - error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleAssignment"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } error_map.update(kwargs.pop('error_map', {})) api_version = "7.2-preview" + accept = "application/json" # Construct URL url = self.get.metadata['url'] # type: ignore @@ -215,7 +223,7 @@ def get( # Construct headers header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') request = self._client.get(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) @@ -223,7 +231,7 @@ def get( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) deserialized = self._deserialize('RoleAssignment', pipeline_response) @@ -241,7 +249,7 @@ def list_for_scope( filter=None, # type: Optional[str] **kwargs # type: Any ): - # type: (...) -> Iterable["models.RoleAssignmentListResult"] + # type: (...) -> Iterable["_models.RoleAssignmentListResult"] """Gets role assignments for a scope. :param vault_base_url: The vault name, for example https://myvault.vault.azure.net. @@ -257,15 +265,18 @@ def list_for_scope( :rtype: ~azure.core.paging.ItemPaged[~azure.keyvault.v7_2.models.RoleAssignmentListResult] :raises: ~azure.core.exceptions.HttpResponseError """ - cls = kwargs.pop('cls', None) # type: ClsType["models.RoleAssignmentListResult"] - error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleAssignmentListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } error_map.update(kwargs.pop('error_map', {})) api_version = "7.2-preview" + accept = "application/json" def prepare_request(next_link=None): # Construct headers header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') if not next_link: # Construct URL @@ -307,7 +318,7 @@ def get_next(next_link=None): response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize(models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, model=error) diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/operations/_role_definitions_operations.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/operations/_role_definitions_operations.py index 3cfe5c94c9ff..aeaf390b8199 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/operations/_role_definitions_operations.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_generated/v7_2_preview/operations/_role_definitions_operations.py @@ -1,6 +1,8 @@ # coding=utf-8 # -------------------------------------------------------------------------- -# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.0.6306, generator: {generator}) +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- from typing import TYPE_CHECKING @@ -27,7 +29,7 @@ class RoleDefinitionsOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~key_vault_client.models + :type models: ~azure.keyvault.v7_2.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -60,7 +62,7 @@ def delete( :type role_definition_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: RoleDefinition, or the result of cls(response) - :rtype: ~key_vault_client.models.RoleDefinition + :rtype: ~azure.keyvault.v7_2.models.RoleDefinition :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleDefinition"] @@ -94,7 +96,7 @@ def delete( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) deserialized = self._deserialize('RoleDefinition', pipeline_response) @@ -125,10 +127,10 @@ def create_or_update( valid GUID. :type role_definition_name: str :param parameters: Parameters for the role definition. - :type parameters: ~key_vault_client.models.RoleDefinitionCreateParameters + :type parameters: ~azure.keyvault.v7_2.models.RoleDefinitionCreateParameters :keyword callable cls: A custom type or function that will be passed the direct response :return: RoleDefinition, or the result of cls(response) - :rtype: ~key_vault_client.models.RoleDefinition + :rtype: ~azure.keyvault.v7_2.models.RoleDefinition :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleDefinition"] @@ -167,7 +169,7 @@ def create_or_update( if response.status_code not in [201]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) deserialized = self._deserialize('RoleDefinition', pipeline_response) @@ -196,7 +198,7 @@ def get( :type role_definition_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: RoleDefinition, or the result of cls(response) - :rtype: ~key_vault_client.models.RoleDefinition + :rtype: ~azure.keyvault.v7_2.models.RoleDefinition :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleDefinition"] @@ -230,7 +232,7 @@ def get( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) raise HttpResponseError(response=response, model=error) deserialized = self._deserialize('RoleDefinition', pipeline_response) @@ -260,7 +262,7 @@ def list( :type filter: str :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either RoleDefinitionListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~key_vault_client.models.RoleDefinitionListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.keyvault.v7_2.models.RoleDefinitionListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["_models.RoleDefinitionListResult"] @@ -316,7 +318,7 @@ def get_next(next_link=None): response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize(_models.KeyVaultError, response) + error = self._deserialize.failsafe_deserialize(_models.KeyVaultError, response) map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, model=error) diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/aio/_access_control_client.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/aio/_access_control_client.py index ba73fe21b2bd..f9936a6e7ae0 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/aio/_access_control_client.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/aio/_access_control_client.py @@ -46,6 +46,8 @@ async def create_role_assignment( :type role_assignment_name: str or uuid.UUID :rtype: KeyVaultRoleAssignment """ + role_assignment_name = kwargs.pop("role_assignment_name", None) or uuid4() + create_parameters = self._client.role_assignments.models.RoleAssignmentCreateParameters( properties=self._client.role_assignments.models.RoleAssignmentProperties( principal_id=principal_id, role_definition_id=str(role_definition_id) @@ -54,7 +56,7 @@ async def create_role_assignment( assignment = await self._client.role_assignments.create( vault_base_url=self._vault_url, scope=role_scope, - role_assignment_name=kwargs.pop("role_assignment_name", None) or uuid4(), + role_assignment_name=str(role_assignment_name), parameters=create_parameters, **kwargs ) @@ -69,7 +71,7 @@ async def delete_role_assignment( :param role_scope: the assignment's scope, for example "/", "/keys", or "/keys/". :class:`KeyVaultRoleScope` defines common broad scopes. Specify a narrower scope as a string. :type role_scope: str or KeyVaultRoleScope - :param role_assignment_name: the assignment's name. Must be a UUID. + :param role_assignment_name: the assignment's name. :type role_assignment_name: str or uuid.UUID :returns: the deleted assignment :rtype: KeyVaultRoleAssignment @@ -117,44 +119,48 @@ def list_role_assignments( @distributed_trace_async async def set_role_definition( - self, role_scope: "Union[str, KeyVaultRoleScope]", **kwargs: "Any" + self, role_scope: "Union[str, KeyVaultRoleScope]", permissions: "Iterable[KeyVaultPermission]", **kwargs: "Any" ) -> "KeyVaultRoleDefinition": """Creates or updates a custom role definition. :param role_scope: scope of the role definition. :class:`KeyVaultRoleScope` defines common broad scopes. Specify a narrower scope as a string. Managed HSM only supports '/', or KeyVaultRoleScope.global_value. :type role_scope: str or KeyVaultRoleScope + :param permissions: the role definition's permissions. An empty list results in a role definition with no action + permissions. + :type permissions: Iterable[KeyVaultPermission] + :keyword str role_name: the role's name. If unspecified when creating or updating a role definition, the role + name will be set to an empty string. :keyword role_definition_name: the role definition's name. Must be a UUID. :type role_definition_name: str or uuid.UUID - :keyword permissions: the role definition's permissions. - :type permissions: Iterable[KeyVaultPermission] - :keyword assignable_scopes: the role definition's assignable scopes. - :type assignable_scopes: list[str] + :keyword str description: a description of the role definition. If unspecified when creating or updating a role + definition, the description will be set to an empty string. :returns: The created or updated role definition :rtype: KeyVaultRoleDefinition """ role_definition_name = kwargs.pop("role_definition_name", None) or uuid4() - permissions = kwargs.pop("permissions", None) - if permissions is not None: - permissions = [ - self._client.role_definitions.models.Permission( - actions=p.allowed_actions, - not_actions=p.denied_actions, - data_actions=p.allowed_data_actions, - not_data_actions=p.denied_data_actions, - ) - for p in permissions - ] + + permissions = [ + self._client.role_definitions.models.Permission( + actions=p.allowed_actions, + not_actions=p.denied_actions, + data_actions=p.allowed_data_actions, + not_data_actions=p.denied_data_actions, + ) + for p in permissions + ] properties = self._client.role_definitions.models.RoleDefinitionProperties( - role_name=role_definition_name, permissions=permissions, **kwargs + role_name=kwargs.pop("role_name", None), + description=kwargs.pop("description", None), + permissions=permissions ) parameters = self._client.role_definitions.models.RoleDefinitionCreateParameters(properties=properties) definition = await self._client.role_definitions.create_or_update( vault_base_url=self._vault_url, scope=role_scope, - role_definition_name=role_definition_name, + role_definition_name=str(role_definition_name), parameters=parameters, **kwargs ) @@ -162,7 +168,7 @@ async def set_role_definition( @distributed_trace_async async def get_role_definition( - self, role_scope: "Union[str, KeyVaultRoleScope]", role_definition_name: "Union[str, UUID]", **kwargs: "Any" + self, role_scope: "Union[str, KeyVaultRoleScope]", role_definition_name: "Union[str, UUID]", **kwargs: "Any" ) -> "KeyVaultRoleDefinition": """Get the specified role definition. @@ -180,14 +186,14 @@ async def get_role_definition( @distributed_trace_async async def delete_role_definition( - self, role_scope: "Union[str, KeyVaultRoleScope]", role_definition_name: "Union[str, UUID]", **kwargs: "Any" + self, role_scope: "Union[str, KeyVaultRoleScope]", role_definition_name: "Union[str, UUID]", **kwargs: "Any" ) -> "KeyVaultRoleDefinition": """Deletes a custom role definition. :param role_scope: scope of the role definition. :class:`KeyVaultRoleScope` defines common broad scopes. Specify a narrower scope as a string. Managed HSM only supports '/', or KeyVaultRoleScope.global_value. :type role_scope: str or KeyVaultRoleScope - :param role_definition_name: the role definition's name. Must be a UUID. + :param role_definition_name: the role definition's name. :type role_definition_name: str or uuid.UUID :returns: the deleted role definition :rtype: KeyVaultRoleDefinition diff --git a/sdk/keyvault/azure-keyvault-administration/setup.py b/sdk/keyvault/azure-keyvault-administration/setup.py index f65c42761597..5ebe28bb4de4 100644 --- a/sdk/keyvault/azure-keyvault-administration/setup.py +++ b/sdk/keyvault/azure-keyvault-administration/setup.py @@ -67,6 +67,7 @@ "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", "License :: OSI Approved :: MIT License", ], zip_safe=False, @@ -79,7 +80,7 @@ "azure.keyvault", ] ), - install_requires=["azure-common~=1.1", "azure-core<2.0.0,>=1.7.0", "msrest>=0.6.0"], + install_requires=["azure-common~=1.1", "azure-core<2.0.0,>=1.7.0", "msrest>=0.6.21"], extras_require={ ":python_version<'3.0'": ["azure-keyvault-nspkg"], ":python_version<'3.4'": ["enum34>=1.0.4"], diff --git a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control.test_role_assignment.yaml b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control.test_role_assignment.yaml index d299f92466bd..11ee3ea7511b 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control.test_role_assignment.yaml +++ b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control.test_role_assignment.yaml @@ -36,7 +36,7 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210112-1-4fbf61ac-develop + - 1.0.20210128-1-4c3070d1-develop x-ms-server-latency: - '1' status: @@ -81,13 +81,13 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210112-1-4fbf61ac-develop + - 1.0.20210128-1-4c3070d1-develop x-ms-keyvault-network-info: - - addr=162.211.216.102 + - addr=174.127.232.53 x-ms-keyvault-region: - - eastus2 + - northeurope x-ms-server-latency: - - '332' + - '1' status: code: 200 message: OK @@ -128,11 +128,11 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-keyvault-network-info: - - addr=162.211.216.102 + - addr=174.127.232.53 x-ms-keyvault-region: - - eastus2 + - northeurope x-ms-server-latency: - - '62' + - '80' status: code: 201 message: Created @@ -168,13 +168,13 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210112-1-4fbf61ac-develop + - 1.0.20210128-1-4c3070d1-develop x-ms-keyvault-network-info: - - addr=162.211.216.102 + - addr=174.127.232.53 x-ms-keyvault-region: - - eastus2 + - northeurope x-ms-server-latency: - - '1' + - '0' status: code: 200 message: OK @@ -193,7 +193,7 @@ interactions: uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments?api-version=7.2-preview response: body: - string: '{"value":[{"id":"/providers/Microsoft.Authorization/roleAssignments/9f810469-b448-03af-ab69-9157ab298955","name":"9f810469-b448-03af-ab69-9157ab298955","properties":{"principalId":"cbd24137-615e-47bf-840a-c2a268157bf7","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/some-uuid","name":"some-uuid","properties":{"principalId":"service-principal-id","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}]}' + string: '{"value":[{"id":"/providers/Microsoft.Authorization/roleAssignments/d1dd605c-1243-400b-16d4-9548525eb240","name":"d1dd605c-1243-400b-16d4-9548525eb240","properties":{"principalId":"47a2c409-7d58-4e1b-a121-9dccf4ce4035","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/some-uuid","name":"some-uuid","properties":{"principalId":"service-principal-id","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}]}' headers: cache-control: - no-cache @@ -210,11 +210,11 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210112-1-4fbf61ac-develop + - 1.0.20210128-1-4c3070d1-develop x-ms-keyvault-network-info: - - addr=162.211.216.102 + - addr=174.127.232.53 x-ms-keyvault-region: - - eastus2 + - northeurope x-ms-server-latency: - '0' status: @@ -254,11 +254,11 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-keyvault-network-info: - - addr=162.211.216.102 + - addr=174.127.232.53 x-ms-keyvault-region: - - eastus2 + - northeurope x-ms-server-latency: - - '43' + - '51' status: code: 200 message: OK @@ -277,7 +277,7 @@ interactions: uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments?api-version=7.2-preview response: body: - string: '{"value":[{"id":"/providers/Microsoft.Authorization/roleAssignments/9f810469-b448-03af-ab69-9157ab298955","name":"9f810469-b448-03af-ab69-9157ab298955","properties":{"principalId":"cbd24137-615e-47bf-840a-c2a268157bf7","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}]}' + string: '{"value":[{"id":"/providers/Microsoft.Authorization/roleAssignments/d1dd605c-1243-400b-16d4-9548525eb240","name":"d1dd605c-1243-400b-16d4-9548525eb240","properties":{"principalId":"47a2c409-7d58-4e1b-a121-9dccf4ce4035","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}]}' headers: cache-control: - no-cache @@ -294,11 +294,11 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210112-1-4fbf61ac-develop + - 1.0.20210128-1-4c3070d1-develop x-ms-keyvault-network-info: - - addr=162.211.216.102 + - addr=174.127.232.53 x-ms-keyvault-region: - - eastus2 + - northeurope x-ms-server-latency: - '0' status: diff --git a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control.test_role_definitions.yaml b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control.test_role_definitions.yaml index 1292780607a6..72c90e8217e2 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control.test_role_definitions.yaml +++ b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control.test_role_definitions.yaml @@ -36,9 +36,9 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210112-1-4fbf61ac-develop + - 1.0.20210128-1-4c3070d1-develop x-ms-server-latency: - - '2' + - '0' status: code: 401 message: Unauthorized @@ -81,19 +81,19 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210112-1-4fbf61ac-develop + - 1.0.20210128-1-4c3070d1-develop x-ms-keyvault-network-info: - - addr=162.211.216.102 + - addr=174.127.232.53 x-ms-keyvault-region: - - eastus2 + - northeurope x-ms-server-latency: - - '353' + - '1' status: code: 200 message: OK - request: - body: '{"properties": {"roleName": "definition-name", "permissions": [{"dataActions": - ["Microsoft.KeyVault/managedHsm/keys/read/action"]}]}}' + body: '{"properties": {"roleName": "role-name626010ec", "description": "test", + "permissions": [{"dataActions": ["Microsoft.KeyVault/managedHsm/keys/read/action"]}]}}' headers: Accept: - application/json @@ -102,7 +102,7 @@ interactions: Connection: - keep-alive Content-Length: - - '154' + - '158' Content-Type: - application/json User-Agent: @@ -111,12 +111,12 @@ interactions: uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.2-preview response: body: - string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"definition-name","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' + string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"test","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"role-name626010ec","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' headers: cache-control: - no-cache content-length: - - '468' + - '453' content-security-policy: - default-src 'self' content-type: @@ -128,17 +128,16 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-keyvault-network-info: - - addr=162.211.216.102 + - addr=174.127.232.53 x-ms-keyvault-region: - - eastus2 + - northeurope x-ms-server-latency: - - '53' + - '71' status: code: 201 message: Created - request: - body: '{"properties": {"roleName": "definition-name", "permissions": [{"notDataActions": - ["Microsoft.KeyVault/managedHsm/keys/read/action"], "dataActions": []}]}}' + body: '{"properties": {"permissions": [{"dataActions": [], "notDataActions": ["Microsoft.KeyVault/managedHsm/keys/read/action"]}]}}' headers: Accept: - application/json @@ -147,7 +146,7 @@ interactions: Connection: - keep-alive Content-Length: - - '176' + - '124' Content-Type: - application/json User-Agent: @@ -156,12 +155,12 @@ interactions: uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.2-preview response: body: - string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"definition-name","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' + string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' headers: cache-control: - no-cache content-length: - - '468' + - '432' content-security-policy: - default-src 'self' content-type: @@ -173,11 +172,11 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-keyvault-network-info: - - addr=162.211.216.102 + - addr=174.127.232.53 x-ms-keyvault-region: - - eastus2 + - northeurope x-ms-server-latency: - - '57' + - '60' status: code: 201 message: Created @@ -203,12 +202,12 @@ interactions: HSM Policy Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","name":"21dbd100-6940-42c2-9190-5d6cb909625b","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778","name":"515eb02d-2335-4d2d-92f2-b1cbdf9c3778","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/restore/action","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/delete","Microsoft.KeyVault/managedHsm/keys/export/action","Microsoft.KeyVault/managedHsm/keys/import/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto Officer","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","name":"a290e904-7015-4bba-90c8-60543313cdb4","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/restore/action","Microsoft.KeyVault/managedHsm/roleAssignments/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/delete","Microsoft.KeyVault/managedHsm/keys/export/action","Microsoft.KeyVault/managedHsm/keys/import/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete","Microsoft.KeyVault/managedHsm/securitydomain/download/action","Microsoft.KeyVault/managedHsm/securitydomain/upload/action","Microsoft.KeyVault/managedHsm/securitydomain/upload/read","Microsoft.KeyVault/managedHsm/securitydomain/transferkey/read","Microsoft.KeyVault/managedHsm/backup/start/action","Microsoft.KeyVault/managedHsm/restore/start/action","Microsoft.KeyVault/managedHsm/backup/status/action","Microsoft.KeyVault/managedHsm/restore/status/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"definition-name","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}]}' + HSM Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}]}' headers: cache-control: - no-cache content-length: - - '7241' + - '7205' content-security-policy: - default-src 'self' content-type: @@ -220,11 +219,11 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210112-1-4fbf61ac-develop + - 1.0.20210128-1-4c3070d1-develop x-ms-keyvault-network-info: - - addr=162.211.216.102 + - addr=174.127.232.53 x-ms-keyvault-region: - - eastus2 + - northeurope x-ms-server-latency: - '1' status: @@ -245,12 +244,12 @@ interactions: uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.2-preview response: body: - string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"definition-name","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' + string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' headers: cache-control: - no-cache content-length: - - '468' + - '432' content-security-policy: - default-src 'self' content-type: @@ -262,13 +261,13 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210112-1-4fbf61ac-develop + - 1.0.20210128-1-4c3070d1-develop x-ms-keyvault-network-info: - - addr=162.211.216.102 + - addr=174.127.232.53 x-ms-keyvault-region: - - eastus2 + - northeurope x-ms-server-latency: - - '1' + - '0' status: code: 200 message: OK @@ -289,12 +288,12 @@ interactions: uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.2-preview response: body: - string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"definition-name","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' + string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' headers: cache-control: - no-cache content-length: - - '468' + - '432' content-security-policy: - default-src 'self' content-type: @@ -306,11 +305,11 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-keyvault-network-info: - - addr=162.211.216.102 + - addr=174.127.232.53 x-ms-keyvault-region: - - eastus2 + - northeurope x-ms-server-latency: - - '44' + - '49' status: code: 200 message: OK @@ -353,11 +352,11 @@ interactions: x-frame-options: - SAMEORIGIN x-ms-build-version: - - 1.0.20210112-1-4fbf61ac-develop + - 1.0.20210128-1-4c3070d1-develop x-ms-keyvault-network-info: - - addr=162.211.216.102 + - addr=174.127.232.53 x-ms-keyvault-region: - - eastus2 + - northeurope x-ms-server-latency: - '0' status: diff --git a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control_async.test_role_assignment.yaml b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control_async.test_role_assignment.yaml index e038e117d8a2..62488c11f923 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control_async.test_role_assignment.yaml +++ b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control_async.test_role_assignment.yaml @@ -23,7 +23,7 @@ interactions: resource="https://managedhsm.azure.net" x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210112-1-4fbf61ac-develop + x-ms-build-version: 1.0.20210128-1-4c3070d1-develop x-ms-server-latency: '1' status: code: 401 @@ -56,17 +56,17 @@ interactions: strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210112-1-4fbf61ac-develop - x-ms-keyvault-network-info: addr=162.211.216.102 - x-ms-keyvault-region: eastus2 - x-ms-server-latency: '361' + x-ms-build-version: 1.0.20210128-1-4c3070d1-develop + x-ms-keyvault-network-info: addr=174.127.232.53 + x-ms-keyvault-region: northeurope + x-ms-server-latency: '347' status: code: 200 message: OK url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2-preview - request: - body: '{"properties": {"principalId": "service-principal-id", "roleDefinitionId": - "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8"}}' + body: '{"properties": {"roleDefinitionId": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8", + "principalId": "service-principal-id"}}' headers: Accept: - application/json @@ -89,13 +89,13 @@ interactions: strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-keyvault-network-info: addr=162.211.216.102 - x-ms-keyvault-region: eastus2 - x-ms-server-latency: '1073' + x-ms-keyvault-network-info: addr=174.127.232.53 + x-ms-keyvault-region: northeurope + x-ms-server-latency: '58' status: code: 201 message: Created - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleAssignments/9226dc58-113e-4315-8dba-1cce42d3c96b?api-version=7.2-preview + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleAssignments/f5a832df-251b-4eb8-beaf-f7d3ab5c8c40?api-version=7.2-preview - request: body: null headers: @@ -116,14 +116,14 @@ interactions: strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210112-1-4fbf61ac-develop - x-ms-keyvault-network-info: addr=162.211.216.102 - x-ms-keyvault-region: eastus2 + x-ms-build-version: 1.0.20210128-1-4c3070d1-develop + x-ms-keyvault-network-info: addr=174.127.232.53 + x-ms-keyvault-region: northeurope x-ms-server-latency: '0' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleAssignments/9226dc58-113e-4315-8dba-1cce42d3c96b?api-version=7.2-preview + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleAssignments/f5a832df-251b-4eb8-beaf-f7d3ab5c8c40?api-version=7.2-preview - request: body: null headers: @@ -135,7 +135,7 @@ interactions: uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments?api-version=7.2-preview response: body: - string: '{"value":[{"id":"/providers/Microsoft.Authorization/roleAssignments/9f810469-b448-03af-ab69-9157ab298955","name":"9f810469-b448-03af-ab69-9157ab298955","properties":{"principalId":"cbd24137-615e-47bf-840a-c2a268157bf7","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/some-uuid","name":"some-uuid","properties":{"principalId":"service-principal-id","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}]}' + string: '{"value":[{"id":"/providers/Microsoft.Authorization/roleAssignments/some-uuid","name":"some-uuid","properties":{"principalId":"service-principal-id","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/7b127d3c-77bd-4e3e-bbe0-dbb8971fa7f8","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"},{"id":"/providers/Microsoft.Authorization/roleAssignments/d1dd605c-1243-400b-16d4-9548525eb240","name":"d1dd605c-1243-400b-16d4-9548525eb240","properties":{"principalId":"47a2c409-7d58-4e1b-a121-9dccf4ce4035","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}]}' headers: cache-control: no-cache content-length: '809' @@ -144,10 +144,10 @@ interactions: strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210112-1-4fbf61ac-develop - x-ms-keyvault-network-info: addr=162.211.216.102 - x-ms-keyvault-region: eastus2 - x-ms-server-latency: '0' + x-ms-build-version: 1.0.20210128-1-4c3070d1-develop + x-ms-keyvault-network-info: addr=174.127.232.53 + x-ms-keyvault-region: northeurope + x-ms-server-latency: '1' status: code: 200 message: OK @@ -172,13 +172,13 @@ interactions: strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-keyvault-network-info: addr=162.211.216.102 - x-ms-keyvault-region: eastus2 - x-ms-server-latency: '49' + x-ms-keyvault-network-info: addr=174.127.232.53 + x-ms-keyvault-region: northeurope + x-ms-server-latency: '65' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleAssignments/9226dc58-113e-4315-8dba-1cce42d3c96b?api-version=7.2-preview + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleAssignments/f5a832df-251b-4eb8-beaf-f7d3ab5c8c40?api-version=7.2-preview - request: body: null headers: @@ -190,7 +190,7 @@ interactions: uri: https://managedhsm/providers/Microsoft.Authorization/roleAssignments?api-version=7.2-preview response: body: - string: '{"value":[{"id":"/providers/Microsoft.Authorization/roleAssignments/9f810469-b448-03af-ab69-9157ab298955","name":"9f810469-b448-03af-ab69-9157ab298955","properties":{"principalId":"cbd24137-615e-47bf-840a-c2a268157bf7","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}]}' + string: '{"value":[{"id":"/providers/Microsoft.Authorization/roleAssignments/d1dd605c-1243-400b-16d4-9548525eb240","name":"d1dd605c-1243-400b-16d4-9548525eb240","properties":{"principalId":"47a2c409-7d58-4e1b-a121-9dccf4ce4035","roleDefinitionId":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","scope":"/"},"type":"Microsoft.Authorization/roleAssignments"}]}' headers: cache-control: no-cache content-length: '410' @@ -199,9 +199,9 @@ interactions: strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210112-1-4fbf61ac-develop - x-ms-keyvault-network-info: addr=162.211.216.102 - x-ms-keyvault-region: eastus2 + x-ms-build-version: 1.0.20210128-1-4c3070d1-develop + x-ms-keyvault-network-info: addr=174.127.232.53 + x-ms-keyvault-region: northeurope x-ms-server-latency: '0' status: code: 200 diff --git a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control_async.test_role_definitions.yaml b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control_async.test_role_definitions.yaml index b8cd67e50085..a5b32b8449fa 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control_async.test_role_definitions.yaml +++ b/sdk/keyvault/azure-keyvault-administration/tests/recordings/test_access_control_async.test_role_definitions.yaml @@ -23,8 +23,8 @@ interactions: resource="https://managedhsm.azure.net" x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210112-1-4fbf61ac-develop - x-ms-server-latency: '1' + x-ms-build-version: 1.0.20210128-1-4c3070d1-develop + x-ms-server-latency: '0' status: code: 401 message: Unauthorized @@ -56,22 +56,22 @@ interactions: strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210112-1-4fbf61ac-develop - x-ms-keyvault-network-info: addr=162.211.216.102 - x-ms-keyvault-region: eastus2 + x-ms-build-version: 1.0.20210128-1-4c3070d1-develop + x-ms-keyvault-network-info: addr=174.127.232.53 + x-ms-keyvault-region: northeurope x-ms-server-latency: '1' status: code: 200 message: OK url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions?api-version=7.2-preview - request: - body: '{"properties": {"roleName": "definition-name", "permissions": [{"dataActions": - ["Microsoft.KeyVault/managedHsm/keys/read/action"]}]}}' + body: '{"properties": {"roleName": "role-named15f1369", "description": "test", + "permissions": [{"dataActions": ["Microsoft.KeyVault/managedHsm/keys/read/action"]}]}}' headers: Accept: - application/json Content-Length: - - '154' + - '158' Content-Type: - application/json User-Agent: @@ -80,30 +80,29 @@ interactions: uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.2-preview response: body: - string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"definition-name","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' + string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"test","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"],"notActions":[],"notDataActions":[]}],"roleName":"role-named15f1369","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' headers: cache-control: no-cache - content-length: '468' + content-length: '453' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-keyvault-network-info: addr=162.211.216.102 - x-ms-keyvault-region: eastus2 - x-ms-server-latency: '36' + x-ms-keyvault-network-info: addr=174.127.232.53 + x-ms-keyvault-region: northeurope + x-ms-server-latency: '65' status: code: 201 message: Created - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/bc61b7be-db21-4213-bc8f-1f0a3715b316?api-version=7.2-preview + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/09cac7da-ce29-4fb2-958e-7f60c658ed6d?api-version=7.2-preview - request: - body: '{"properties": {"roleName": "definition-name", "permissions": [{"notDataActions": - ["Microsoft.KeyVault/managedHsm/keys/read/action"], "dataActions": []}]}}' + body: '{"properties": {"permissions": [{"dataActions": [], "notDataActions": ["Microsoft.KeyVault/managedHsm/keys/read/action"]}]}}' headers: Accept: - application/json Content-Length: - - '176' + - '124' Content-Type: - application/json User-Agent: @@ -112,22 +111,22 @@ interactions: uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.2-preview response: body: - string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"definition-name","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' + string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' headers: cache-control: no-cache - content-length: '468' + content-length: '432' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-keyvault-network-info: addr=162.211.216.102 - x-ms-keyvault-region: eastus2 - x-ms-server-latency: '39' + x-ms-keyvault-network-info: addr=174.127.232.53 + x-ms-keyvault-region: northeurope + x-ms-server-latency: '48' status: code: 201 message: Created - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/bc61b7be-db21-4213-bc8f-1f0a3715b316?api-version=7.2-preview + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/09cac7da-ce29-4fb2-958e-7f60c658ed6d?api-version=7.2-preview - request: body: null headers: @@ -146,18 +145,18 @@ interactions: HSM Policy Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/21dbd100-6940-42c2-9190-5d6cb909625b","name":"21dbd100-6940-42c2-9190-5d6cb909625b","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto User","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/515eb02d-2335-4d2d-92f2-b1cbdf9c3778","name":"515eb02d-2335-4d2d-92f2-b1cbdf9c3778","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/restore/action","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/delete","Microsoft.KeyVault/managedHsm/keys/export/action","Microsoft.KeyVault/managedHsm/keys/import/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete"],"notActions":[],"notDataActions":[]}],"roleName":"Managed HSM Crypto Officer","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/a290e904-7015-4bba-90c8-60543313cdb4","name":"a290e904-7015-4bba-90c8-60543313cdb4","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":["Microsoft.KeyVault/managedHsm/keys/read/action","Microsoft.KeyVault/managedHsm/keys/write/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action","Microsoft.KeyVault/managedHsm/keys/backup/action","Microsoft.KeyVault/managedHsm/keys/restore/action","Microsoft.KeyVault/managedHsm/roleAssignments/delete/action","Microsoft.KeyVault/managedHsm/roleAssignments/read/action","Microsoft.KeyVault/managedHsm/roleAssignments/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/read/action","Microsoft.KeyVault/managedHsm/roleDefinitions/write/action","Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action","Microsoft.KeyVault/managedHsm/keys/encrypt/action","Microsoft.KeyVault/managedHsm/keys/decrypt/action","Microsoft.KeyVault/managedHsm/keys/wrap/action","Microsoft.KeyVault/managedHsm/keys/unwrap/action","Microsoft.KeyVault/managedHsm/keys/sign/action","Microsoft.KeyVault/managedHsm/keys/verify/action","Microsoft.KeyVault/managedHsm/keys/create","Microsoft.KeyVault/managedHsm/keys/delete","Microsoft.KeyVault/managedHsm/keys/export/action","Microsoft.KeyVault/managedHsm/keys/import/action","Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete","Microsoft.KeyVault/managedHsm/securitydomain/download/action","Microsoft.KeyVault/managedHsm/securitydomain/upload/action","Microsoft.KeyVault/managedHsm/securitydomain/upload/read","Microsoft.KeyVault/managedHsm/securitydomain/transferkey/read","Microsoft.KeyVault/managedHsm/backup/start/action","Microsoft.KeyVault/managedHsm/restore/start/action","Microsoft.KeyVault/managedHsm/backup/status/action","Microsoft.KeyVault/managedHsm/restore/status/action"],"notActions":[],"notDataActions":[]}],"roleName":"Managed - HSM Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"definition-name","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}]}' + HSM Administrator","type":"AKVBuiltInRole"},"type":"Microsoft.Authorization/roleDefinitions"},{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}]}' headers: cache-control: no-cache - content-length: '7241' + content-length: '7205' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210112-1-4fbf61ac-develop - x-ms-keyvault-network-info: addr=162.211.216.102 - x-ms-keyvault-region: eastus2 + x-ms-build-version: 1.0.20210128-1-4c3070d1-develop + x-ms-keyvault-network-info: addr=174.127.232.53 + x-ms-keyvault-region: northeurope x-ms-server-latency: '0' status: code: 200 @@ -174,23 +173,23 @@ interactions: uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.2-preview response: body: - string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"definition-name","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' + string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' headers: cache-control: no-cache - content-length: '468' + content-length: '432' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210112-1-4fbf61ac-develop - x-ms-keyvault-network-info: addr=162.211.216.102 - x-ms-keyvault-region: eastus2 + x-ms-build-version: 1.0.20210128-1-4c3070d1-develop + x-ms-keyvault-network-info: addr=174.127.232.53 + x-ms-keyvault-region: northeurope x-ms-server-latency: '0' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/bc61b7be-db21-4213-bc8f-1f0a3715b316?api-version=7.2-preview + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/09cac7da-ce29-4fb2-958e-7f60c658ed6d?api-version=7.2-preview - request: body: null headers: @@ -202,22 +201,22 @@ interactions: uri: https://managedhsm/providers/Microsoft.Authorization/roleDefinitions/definition-name?api-version=7.2-preview response: body: - string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"definition-name","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' + string: '{"id":"Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/definition-name","name":"definition-name","properties":{"assignableScopes":["/"],"description":"","permissions":[{"actions":[],"dataActions":[],"notActions":[],"notDataActions":["Microsoft.KeyVault/managedHsm/keys/read/action"]}],"roleName":"","type":"CustomRole"},"type":"Microsoft.Authorization/roleDefinitions"}' headers: cache-control: no-cache - content-length: '468' + content-length: '432' content-security-policy: default-src 'self' content-type: application/json; charset=utf-8 strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-keyvault-network-info: addr=162.211.216.102 - x-ms-keyvault-region: eastus2 - x-ms-server-latency: '42' + x-ms-keyvault-network-info: addr=174.127.232.53 + x-ms-keyvault-region: northeurope + x-ms-server-latency: '48' status: code: 200 message: OK - url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/bc61b7be-db21-4213-bc8f-1f0a3715b316?api-version=7.2-preview + url: https://mcpatinotesthsm.managedhsm.azure.net/providers/Microsoft.Authorization/roleDefinitions/09cac7da-ce29-4fb2-958e-7f60c658ed6d?api-version=7.2-preview - request: body: null headers: @@ -245,9 +244,9 @@ interactions: strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN - x-ms-build-version: 1.0.20210112-1-4fbf61ac-develop - x-ms-keyvault-network-info: addr=162.211.216.102 - x-ms-keyvault-region: eastus2 + x-ms-build-version: 1.0.20210128-1-4c3070d1-develop + x-ms-keyvault-network-info: addr=174.127.232.53 + x-ms-keyvault-region: northeurope x-ms-server-latency: '0' status: code: 200 diff --git a/sdk/keyvault/azure-keyvault-administration/tests/test_access_control.py b/sdk/keyvault/azure-keyvault-administration/tests/test_access_control.py index c24c3894ab23..df0df34d6c5b 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/test_access_control.py +++ b/sdk/keyvault/azure-keyvault-administration/tests/test_access_control.py @@ -9,6 +9,7 @@ from azure.core.credentials import AccessToken from azure.identity import DefaultAzureCredential from azure.keyvault.administration import KeyVaultAccessControlClient, KeyVaultRoleScope, KeyVaultPermission, KeyVaultDataAction +from azure.keyvault.administration._internal import HttpChallengeCache import pytest from six.moves.urllib_parse import urlparse @@ -28,6 +29,11 @@ def setUp(self, *args, **kwargs): self.scrubber.register_name_pair(real.netloc, playback.netloc) super(AccessControlTests, self).setUp(*args, **kwargs) + def tearDown(self): + HttpChallengeCache.clear() + assert len(HttpChallengeCache._cache) == 0 + super(AccessControlTests, self).tearDown() + @property def credential(self): if self.is_live: @@ -58,13 +64,20 @@ def test_role_definitions(self): assert len(original_definitions) # create custom role definition + role_name = self.get_resource_name("role-name") definition_name = self.get_replayable_uuid("definition-name") permissions = [KeyVaultPermission(allowed_data_actions=[KeyVaultDataAction.READ_HSM_KEY])] created_definition = client.set_role_definition( - role_scope=scope, permissions=permissions, role_definition_name=definition_name + role_scope=scope, + permissions=permissions, + role_name=role_name, + role_definition_name=definition_name, + description="test" ) assert "/" in created_definition.assignable_scopes + assert created_definition.role_name == role_name assert created_definition.name == definition_name + assert created_definition.description == "test" assert len(created_definition.permissions) == 1 assert created_definition.permissions[0].allowed_data_actions == [KeyVaultDataAction.READ_HSM_KEY] @@ -75,6 +88,8 @@ def test_role_definitions(self): updated_definition = client.set_role_definition( role_scope=scope, permissions=permissions, role_definition_name=definition_name ) + assert updated_definition.role_name == "" + assert updated_definition.description == "" assert len(updated_definition.permissions) == 1 assert len(updated_definition.permissions[0].allowed_data_actions) == 0 assert updated_definition.permissions[0].denied_data_actions == [KeyVaultDataAction.READ_HSM_KEY] diff --git a/sdk/keyvault/azure-keyvault-administration/tests/test_access_control_async.py b/sdk/keyvault/azure-keyvault-administration/tests/test_access_control_async.py index 41b9bafd8356..36adb7171dce 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/test_access_control_async.py +++ b/sdk/keyvault/azure-keyvault-administration/tests/test_access_control_async.py @@ -10,6 +10,7 @@ from azure.identity.aio import DefaultAzureCredential from azure.keyvault.administration import KeyVaultRoleScope, KeyVaultPermission, KeyVaultDataAction from azure.keyvault.administration.aio import KeyVaultAccessControlClient +from azure.keyvault.administration._internal import HttpChallengeCache import pytest from six.moves.urllib_parse import urlparse from devtools_testutils import AzureTestCase @@ -31,6 +32,11 @@ def setUp(self, *args, **kwargs): self.scrubber.register_name_pair(real.netloc, playback.netloc) super(AccessControlTests, self).setUp(*args, **kwargs) + def tearDown(self): + HttpChallengeCache.clear() + assert len(HttpChallengeCache._cache) == 0 + super(AccessControlTests, self).tearDown() + @property def credential(self): if self.is_live: @@ -68,13 +74,20 @@ async def test_role_definitions(self): assert len(original_definitions) # create custom role definition + role_name = self.get_resource_name("role-name") definition_name = self.get_replayable_uuid("definition-name") permissions = [KeyVaultPermission(allowed_data_actions=[KeyVaultDataAction.READ_HSM_KEY])] created_definition = await client.set_role_definition( - role_scope=scope, permissions=permissions, role_definition_name=definition_name + role_scope=scope, + permissions=permissions, + role_name=role_name, + role_definition_name=definition_name, + description="test" ) assert "/" in created_definition.assignable_scopes + assert created_definition.role_name == role_name assert created_definition.name == definition_name + assert created_definition.description == "test" assert len(created_definition.permissions) == 1 assert created_definition.permissions[0].allowed_data_actions == [KeyVaultDataAction.READ_HSM_KEY] @@ -85,6 +98,8 @@ async def test_role_definitions(self): updated_definition = await client.set_role_definition( role_scope=scope, permissions=permissions, role_definition_name=definition_name ) + assert updated_definition.role_name == "" + assert updated_definition.description == "" assert len(updated_definition.permissions) == 1 assert len(updated_definition.permissions[0].allowed_data_actions) == 0 assert updated_definition.permissions[0].denied_data_actions == [KeyVaultDataAction.READ_HSM_KEY] diff --git a/shared_requirements.txt b/shared_requirements.txt index a433cdff4533..28455c63e551 100644 --- a/shared_requirements.txt +++ b/shared_requirements.txt @@ -126,7 +126,7 @@ avro<2.0.0,>=1.10.0 #override azure-data-tables azure-core<2.0.0,>=1.6.0 #override azure-eventhub azure-core<2.0.0,>=1.5.0 #override azure-identity azure-core<2.0.0,>=1.0.0 -#override azure-keyvault-administration msrest>=0.6.0 +#override azure-keyvault-administration msrest>=0.6.21 #override azure-keyvault-certificates msrest>=0.6.0 #override azure-keyvault-keys msrest>=0.6.0 #override azure-keyvault-secrets msrest>=0.6.0