From d0ff02d4fa50882f288efbf4d4c87b3aece2dbf6 Mon Sep 17 00:00:00 2001 From: SDKAuto Date: Thu, 22 Apr 2021 05:35:43 +0000 Subject: [PATCH] CodeGen from PR 13710 in Azure/azure-rest-api-specs Merge 8c25d4bd9effd074112cdc3bc417e9cf44165734 into 7ba244b2565ba055ee79ca314defb87b30ca05af --- sdk/cosmos/azure-mgmt-cosmosdb/MANIFEST.in | 1 + sdk/cosmos/azure-mgmt-cosmosdb/_meta.json | 8 + .../azure/mgmt/cosmosdb/_configuration.py | 2 +- .../cosmosdb/_cosmos_db_management_client.py | 72 +- .../azure/mgmt/cosmosdb/_metadata.json | 104 +- .../azure/mgmt/cosmosdb/_version.py | 2 +- .../azure/mgmt/cosmosdb/aio/_configuration.py | 2 +- .../aio/_cosmos_db_management_client.py | 71 +- .../mgmt/cosmosdb/aio/operations/__init__.py | 22 + .../_cassandra_clusters_operations.py | 973 +++++ .../_cassandra_data_centers_operations.py | 566 +++ .../_cassandra_resources_operations.py | 84 +- .../aio/operations/_collection_operations.py | 6 +- .../_collection_partition_operations.py | 4 +- ..._collection_partition_region_operations.py | 2 +- .../_collection_region_operations.py | 2 +- ..._cosmos_db_management_client_operations.py | 142 + .../_database_account_region_operations.py | 2 +- .../_database_accounts_operations.py | 68 +- .../aio/operations/_database_operations.py | 6 +- .../_gremlin_resources_operations.py | 84 +- .../_mongo_db_resources_operations.py | 87 +- .../_notebook_workspaces_operations.py | 52 +- .../cosmosdb/aio/operations/_operations.py | 2 +- .../_partition_key_range_id_operations.py | 2 +- ...artition_key_range_id_region_operations.py | 2 +- .../aio/operations/_percentile_operations.py | 2 +- .../_percentile_source_target_operations.py | 2 +- .../_percentile_target_operations.py | 2 +- ...private_endpoint_connections_operations.py | 20 +- .../_private_link_resources_operations.py | 4 +- ...restorable_database_accounts_operations.py | 240 ++ ...storable_mongodb_collections_operations.py | 123 + ...restorable_mongodb_databases_operations.py | 119 + ...restorable_mongodb_resources_operations.py | 129 + .../_restorable_sql_containers_operations.py | 133 + .../_restorable_sql_databases_operations.py | 119 + .../_restorable_sql_resources_operations.py | 129 + .../aio/operations/_service_operations.py | 428 ++ .../operations/_sql_resources_operations.py | 1045 ++++- .../operations/_table_resources_operations.py | 42 +- .../azure/mgmt/cosmosdb/models/__init__.py | 223 +- .../_cosmos_db_management_client_enums.py | 120 + .../azure/mgmt/cosmosdb/models/_models.py | 3016 +++++++++++-- .../azure/mgmt/cosmosdb/models/_models_py3.py | 3779 ++++++++++++++--- .../mgmt/cosmosdb/operations/__init__.py | 22 + .../_cassandra_clusters_operations.py | 992 +++++ .../_cassandra_data_centers_operations.py | 578 +++ .../_cassandra_resources_operations.py | 84 +- .../operations/_collection_operations.py | 6 +- .../_collection_partition_operations.py | 4 +- ..._collection_partition_region_operations.py | 2 +- .../_collection_region_operations.py | 2 +- ..._cosmos_db_management_client_operations.py | 148 + .../_database_account_region_operations.py | 2 +- .../_database_accounts_operations.py | 68 +- .../operations/_database_operations.py | 6 +- .../_gremlin_resources_operations.py | 84 +- .../_mongo_db_resources_operations.py | 87 +- .../_notebook_workspaces_operations.py | 52 +- .../mgmt/cosmosdb/operations/_operations.py | 2 +- .../_partition_key_range_id_operations.py | 2 +- ...artition_key_range_id_region_operations.py | 2 +- .../operations/_percentile_operations.py | 2 +- .../_percentile_source_target_operations.py | 2 +- .../_percentile_target_operations.py | 2 +- ...private_endpoint_connections_operations.py | 20 +- .../_private_link_resources_operations.py | 4 +- ...restorable_database_accounts_operations.py | 247 ++ ...storable_mongodb_collections_operations.py | 128 + ...restorable_mongodb_databases_operations.py | 124 + ...restorable_mongodb_resources_operations.py | 134 + .../_restorable_sql_containers_operations.py | 138 + .../_restorable_sql_databases_operations.py | 124 + .../_restorable_sql_resources_operations.py | 134 + .../operations/_service_operations.py | 438 ++ .../operations/_sql_resources_operations.py | 1059 ++++- .../operations/_table_resources_operations.py | 42 +- 78 files changed, 15292 insertions(+), 1492 deletions(-) create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/_meta.json create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_cassandra_clusters_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_cassandra_data_centers_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_cosmos_db_management_client_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_database_accounts_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_mongodb_collections_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_mongodb_databases_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_mongodb_resources_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_sql_containers_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_sql_databases_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_sql_resources_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_service_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_cassandra_clusters_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_cassandra_data_centers_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_cosmos_db_management_client_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_database_accounts_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_mongodb_collections_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_mongodb_databases_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_mongodb_resources_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_sql_containers_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_sql_databases_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_sql_resources_operations.py create mode 100644 sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_service_operations.py diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/MANIFEST.in b/sdk/cosmos/azure-mgmt-cosmosdb/MANIFEST.in index a3cb07df8765..3a9b6517412b 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/MANIFEST.in +++ b/sdk/cosmos/azure-mgmt-cosmosdb/MANIFEST.in @@ -1,3 +1,4 @@ +include _meta.json recursive-include tests *.py *.yaml include *.md include azure/__init__.py diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/_meta.json b/sdk/cosmos/azure-mgmt-cosmosdb/_meta.json new file mode 100644 index 000000000000..f3680c7aa427 --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/_meta.json @@ -0,0 +1,8 @@ +{ + "autorest": "3.3.0", + "use": "@autorest/python@5.6.6", + "commit": "7633c3c9e2da5714fb976ea99c7bff317b95036e", + "repository_url": "https://github.com/Azure/azure-rest-api-specs", + "autorest_command": "autorest specification/cosmos-db/resource-manager/readme.md --multiapi --python --python-mode=update --python-sdks-folder=/home/vsts/work/1/s/azure-sdk-for-python/sdk --track2 --use=@autorest/python@5.6.6 --version=3.3.0", + "readme": "specification/cosmos-db/resource-manager/readme.md" +} \ No newline at end of file diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/_configuration.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/_configuration.py index d4fa454de41f..242ba281ce00 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/_configuration.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/_configuration.py @@ -48,7 +48,7 @@ def __init__( self.credential = credential self.subscription_id = subscription_id - self.api_version = "2021-03-15" + self.api_version = "2021-04-01-preview" self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) kwargs.setdefault('sdk_moniker', 'mgmt-cosmosdb/{}'.format(VERSION)) self._configure(**kwargs) diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/_cosmos_db_management_client.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/_cosmos_db_management_client.py index 23596a5fe159..d92aceaca363 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/_cosmos_db_management_client.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/_cosmos_db_management_client.py @@ -16,6 +16,7 @@ from typing import Any, Optional from azure.core.credentials import TokenCredential + from azure.core.pipeline.transport import HttpRequest, HttpResponse from ._configuration import CosmosDBManagementClientConfiguration from .operations import DatabaseAccountsOperations @@ -36,13 +37,24 @@ from .operations import TableResourcesOperations from .operations import CassandraResourcesOperations from .operations import GremlinResourcesOperations +from .operations import RestorableDatabaseAccountsOperations +from .operations import CosmosDBManagementClientOperationsMixin from .operations import NotebookWorkspacesOperations +from .operations import RestorableSqlDatabasesOperations +from .operations import RestorableSqlContainersOperations +from .operations import RestorableSqlResourcesOperations +from .operations import RestorableMongodbDatabasesOperations +from .operations import RestorableMongodbCollectionsOperations +from .operations import RestorableMongodbResourcesOperations +from .operations import CassandraClustersOperations +from .operations import CassandraDataCentersOperations from .operations import PrivateLinkResourcesOperations from .operations import PrivateEndpointConnectionsOperations +from .operations import ServiceOperations from . import models -class CosmosDBManagementClient(object): +class CosmosDBManagementClient(CosmosDBManagementClientOperationsMixin): """Azure Cosmos DB Database Service Resource Provider REST API. :ivar database_accounts: DatabaseAccountsOperations operations @@ -81,12 +93,32 @@ class CosmosDBManagementClient(object): :vartype cassandra_resources: azure.mgmt.cosmosdb.operations.CassandraResourcesOperations :ivar gremlin_resources: GremlinResourcesOperations operations :vartype gremlin_resources: azure.mgmt.cosmosdb.operations.GremlinResourcesOperations + :ivar restorable_database_accounts: RestorableDatabaseAccountsOperations operations + :vartype restorable_database_accounts: azure.mgmt.cosmosdb.operations.RestorableDatabaseAccountsOperations :ivar notebook_workspaces: NotebookWorkspacesOperations operations :vartype notebook_workspaces: azure.mgmt.cosmosdb.operations.NotebookWorkspacesOperations + :ivar restorable_sql_databases: RestorableSqlDatabasesOperations operations + :vartype restorable_sql_databases: azure.mgmt.cosmosdb.operations.RestorableSqlDatabasesOperations + :ivar restorable_sql_containers: RestorableSqlContainersOperations operations + :vartype restorable_sql_containers: azure.mgmt.cosmosdb.operations.RestorableSqlContainersOperations + :ivar restorable_sql_resources: RestorableSqlResourcesOperations operations + :vartype restorable_sql_resources: azure.mgmt.cosmosdb.operations.RestorableSqlResourcesOperations + :ivar restorable_mongodb_databases: RestorableMongodbDatabasesOperations operations + :vartype restorable_mongodb_databases: azure.mgmt.cosmosdb.operations.RestorableMongodbDatabasesOperations + :ivar restorable_mongodb_collections: RestorableMongodbCollectionsOperations operations + :vartype restorable_mongodb_collections: azure.mgmt.cosmosdb.operations.RestorableMongodbCollectionsOperations + :ivar restorable_mongodb_resources: RestorableMongodbResourcesOperations operations + :vartype restorable_mongodb_resources: azure.mgmt.cosmosdb.operations.RestorableMongodbResourcesOperations + :ivar cassandra_clusters: CassandraClustersOperations operations + :vartype cassandra_clusters: azure.mgmt.cosmosdb.operations.CassandraClustersOperations + :ivar cassandra_data_centers: CassandraDataCentersOperations operations + :vartype cassandra_data_centers: azure.mgmt.cosmosdb.operations.CassandraDataCentersOperations :ivar private_link_resources: PrivateLinkResourcesOperations operations :vartype private_link_resources: azure.mgmt.cosmosdb.operations.PrivateLinkResourcesOperations :ivar private_endpoint_connections: PrivateEndpointConnectionsOperations operations :vartype private_endpoint_connections: azure.mgmt.cosmosdb.operations.PrivateEndpointConnectionsOperations + :ivar service: ServiceOperations operations + :vartype service: azure.mgmt.cosmosdb.operations.ServiceOperations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials.TokenCredential :param subscription_id: The ID of the target subscription. @@ -149,12 +181,50 @@ def __init__( self._client, self._config, self._serialize, self._deserialize) self.gremlin_resources = GremlinResourcesOperations( self._client, self._config, self._serialize, self._deserialize) + self.restorable_database_accounts = RestorableDatabaseAccountsOperations( + self._client, self._config, self._serialize, self._deserialize) self.notebook_workspaces = NotebookWorkspacesOperations( self._client, self._config, self._serialize, self._deserialize) + self.restorable_sql_databases = RestorableSqlDatabasesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.restorable_sql_containers = RestorableSqlContainersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.restorable_sql_resources = RestorableSqlResourcesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.restorable_mongodb_databases = RestorableMongodbDatabasesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.restorable_mongodb_collections = RestorableMongodbCollectionsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.restorable_mongodb_resources = RestorableMongodbResourcesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.cassandra_clusters = CassandraClustersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.cassandra_data_centers = CassandraDataCentersOperations( + self._client, self._config, self._serialize, self._deserialize) self.private_link_resources = PrivateLinkResourcesOperations( self._client, self._config, self._serialize, self._deserialize) self.private_endpoint_connections = PrivateEndpointConnectionsOperations( self._client, self._config, self._serialize, self._deserialize) + self.service = ServiceOperations( + self._client, self._config, self._serialize, self._deserialize) + + def _send_request(self, http_request, **kwargs): + # type: (HttpRequest, Any) -> HttpResponse + """Runs the network request through the client's chained policies. + + :param http_request: The network request you want to make. Required. + :type http_request: ~azure.core.pipeline.transport.HttpRequest + :keyword bool stream: Whether the response payload will be streamed. Defaults to True. + :return: The response of your network call. Does not do error handling on your response. + :rtype: ~azure.core.pipeline.transport.HttpResponse + """ + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + } + http_request.url = self._client.format_url(http_request.url, **path_format_arguments) + stream = kwargs.pop("stream", True) + pipeline_response = self._client._pipeline.run(http_request, stream=stream, **kwargs) + return pipeline_response.http_response def close(self): # type: () -> None diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/_metadata.json b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/_metadata.json index f3f68ce5782c..929abf2fab10 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/_metadata.json +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/_metadata.json @@ -1,6 +1,6 @@ { - "chosen_version": "2021-03-15", - "total_api_version_list": ["2021-03-15"], + "chosen_version": "2021-04-01-preview", + "total_api_version_list": ["2021-04-01-preview"], "client": { "name": "CosmosDBManagementClient", "filename": "_cosmos_db_management_client", @@ -9,7 +9,9 @@ "custom_base_url": null, "azure_arm": true, "has_lro_operations": true, - "client_side_validation": false + "client_side_validation": false, + "sync_imports": "{\"typing\": {\"azurecore\": {\"azure.core.credentials\": [\"TokenCredential\"]}}, \"regular\": {\"azurecore\": {\"azure.profiles\": [\"KnownProfiles\", \"ProfileDefinition\"], \"azure.profiles.multiapiclient\": [\"MultiApiClientMixin\"], \"msrest\": [\"Deserializer\", \"Serializer\"], \"azure.mgmt.core\": [\"ARMPipelineClient\"]}, \"local\": {\"._configuration\": [\"CosmosDBManagementClientConfiguration\"], \"._operations_mixin\": [\"CosmosDBManagementClientOperationsMixin\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Optional\"]}, \"azurecore\": {\"azure.core.pipeline.transport\": [\"HttpRequest\", \"HttpResponse\"]}}}", + "async_imports": "{\"typing\": {\"azurecore\": {\"azure.core.credentials_async\": [\"AsyncTokenCredential\"]}}, \"regular\": {\"azurecore\": {\"azure.profiles\": [\"KnownProfiles\", \"ProfileDefinition\"], \"azure.profiles.multiapiclient\": [\"MultiApiClientMixin\"], \"msrest\": [\"Deserializer\", \"Serializer\"], \"azure.mgmt.core\": [\"AsyncARMPipelineClient\"]}, \"local\": {\"._configuration\": [\"CosmosDBManagementClientConfiguration\"], \"._operations_mixin\": [\"CosmosDBManagementClientOperationsMixin\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Optional\"]}, \"azurecore\": {\"azure.core.pipeline.transport\": [\"AsyncHttpResponse\", \"HttpRequest\"]}}}" }, "global_parameters": { "sync": { @@ -28,13 +30,13 @@ }, "async": { "credential": { - "signature": "credential, # type: \"AsyncTokenCredential\"", + "signature": "credential: \"AsyncTokenCredential\",", "description": "Credential needed for the client to connect to Azure.", "docstring_type": "~azure.core.credentials_async.AsyncTokenCredential", "required": true }, "subscription_id": { - "signature": "subscription_id, # type: str", + "signature": "subscription_id: str,", "description": "The ID of the target subscription.", "docstring_type": "str", "required": true @@ -42,14 +44,58 @@ }, "constant": { }, - "call": "credential, subscription_id" + "call": "credential, subscription_id", + "service_client_specific": { + "sync": { + "api_version": { + "signature": "api_version=None, # type: Optional[str]", + "description": "API version to use if no profile is provided, or if missing in profile.", + "docstring_type": "str", + "required": false + }, + "base_url": { + "signature": "base_url=None, # type: Optional[str]", + "description": "Service URL", + "docstring_type": "str", + "required": false + }, + "profile": { + "signature": "profile=KnownProfiles.default, # type: KnownProfiles", + "description": "A profile definition, from KnownProfiles to dict.", + "docstring_type": "azure.profiles.KnownProfiles", + "required": false + } + }, + "async": { + "api_version": { + "signature": "api_version: Optional[str] = None,", + "description": "API version to use if no profile is provided, or if missing in profile.", + "docstring_type": "str", + "required": false + }, + "base_url": { + "signature": "base_url: Optional[str] = None,", + "description": "Service URL", + "docstring_type": "str", + "required": false + }, + "profile": { + "signature": "profile: KnownProfiles = KnownProfiles.default,", + "description": "A profile definition, from KnownProfiles to dict.", + "docstring_type": "azure.profiles.KnownProfiles", + "required": false + } + } + } }, "config": { "credential": true, "credential_scopes": ["https://management.azure.com/.default"], "credential_default_policy_type": "BearerTokenCredentialPolicy", "credential_default_policy_type_has_async_version": true, - "credential_key_header_name": null + "credential_key_header_name": null, + "sync_imports": "{\"regular\": {\"azurecore\": {\"azure.core.configuration\": [\"Configuration\"], \"azure.core.pipeline\": [\"policies\"], \"azure.mgmt.core.policies\": [\"ARMHttpLoggingPolicy\"]}, \"local\": {\"._version\": [\"VERSION\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\"]}}, \"typing\": {\"azurecore\": {\"azure.core.credentials\": [\"TokenCredential\"]}}}", + "async_imports": "{\"regular\": {\"azurecore\": {\"azure.core.configuration\": [\"Configuration\"], \"azure.core.pipeline\": [\"policies\"], \"azure.mgmt.core.policies\": [\"ARMHttpLoggingPolicy\"]}, \"local\": {\".._version\": [\"VERSION\"]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\"]}}, \"typing\": {\"azurecore\": {\"azure.core.credentials_async\": [\"AsyncTokenCredential\"]}}}" }, "operation_groups": { "database_accounts": "DatabaseAccountsOperations", @@ -70,12 +116,48 @@ "table_resources": "TableResourcesOperations", "cassandra_resources": "CassandraResourcesOperations", "gremlin_resources": "GremlinResourcesOperations", + "restorable_database_accounts": "RestorableDatabaseAccountsOperations", "notebook_workspaces": "NotebookWorkspacesOperations", + "restorable_sql_databases": "RestorableSqlDatabasesOperations", + "restorable_sql_containers": "RestorableSqlContainersOperations", + "restorable_sql_resources": "RestorableSqlResourcesOperations", + "restorable_mongodb_databases": "RestorableMongodbDatabasesOperations", + "restorable_mongodb_collections": "RestorableMongodbCollectionsOperations", + "restorable_mongodb_resources": "RestorableMongodbResourcesOperations", + "cassandra_clusters": "CassandraClustersOperations", + "cassandra_data_centers": "CassandraDataCentersOperations", "private_link_resources": "PrivateLinkResourcesOperations", - "private_endpoint_connections": "PrivateEndpointConnectionsOperations" + "private_endpoint_connections": "PrivateEndpointConnectionsOperations", + "service": "ServiceOperations" }, "operation_mixins": { - }, - "sync_imports": "None", - "async_imports": "None" + "sync_imports": "{\"regular\": {\"azurecore\": {\"azure.core.exceptions\": [\"ClientAuthenticationError\", \"HttpResponseError\", \"ResourceExistsError\", \"ResourceNotFoundError\", \"map_error\"], \"azure.mgmt.core.exceptions\": [\"ARMErrorFormat\"], \"azure.core.pipeline\": [\"PipelineResponse\"], \"azure.core.pipeline.transport\": [\"HttpRequest\", \"HttpResponse\"], \"azure.core.paging\": [\"ItemPaged\"]}, \"stdlib\": {\"warnings\": [null]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"Callable\", \"Dict\", \"Generic\", \"Iterable\", \"Optional\", \"TypeVar\"]}}}", + "async_imports": "{\"regular\": {\"azurecore\": {\"azure.core.exceptions\": [\"ClientAuthenticationError\", \"HttpResponseError\", \"ResourceExistsError\", \"ResourceNotFoundError\", \"map_error\"], \"azure.mgmt.core.exceptions\": [\"ARMErrorFormat\"], \"azure.core.pipeline\": [\"PipelineResponse\"], \"azure.core.pipeline.transport\": [\"AsyncHttpResponse\", \"HttpRequest\"], \"azure.core.async_paging\": [\"AsyncItemPaged\", \"AsyncList\"]}, \"stdlib\": {\"warnings\": [null]}}, \"conditional\": {\"stdlib\": {\"typing\": [\"Any\", \"AsyncIterable\", \"Callable\", \"Dict\", \"Generic\", \"Optional\", \"TypeVar\"]}}}", + "operations": { + "location_list" : { + "sync": { + "signature": "def location_list(\n self,\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"List Cosmos DB locations and their properties.\n\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: An iterator like instance of either LocationListResult or the result of cls(response)\n:rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.cosmosdb.models.LocationListResult]\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": false, + "signature": "def location_list(\n self,\n **kwargs\n) -\u003e AsyncItemPaged[\"_models.LocationListResult\"]:\n", + "doc": "\"\"\"List Cosmos DB locations and their properties.\n\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: An iterator like instance of either LocationListResult or the result of cls(response)\n:rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.cosmosdb.models.LocationListResult]\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "" + }, + "location_get" : { + "sync": { + "signature": "def location_get(\n self,\n location, # type: str\n **kwargs # type: Any\n):\n", + "doc": "\"\"\"Get the properties of an existing Cosmos DB location.\n\n:param location: Cosmos DB region, with spaces between words and each word capitalized.\n:type location: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: LocationGetResult, or the result of cls(response)\n:rtype: ~azure.mgmt.cosmosdb.models.LocationGetResult\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "async": { + "coroutine": true, + "signature": "async def location_get(\n self,\n location: str,\n **kwargs\n) -\u003e \"_models.LocationGetResult\":\n", + "doc": "\"\"\"Get the properties of an existing Cosmos DB location.\n\n:param location: Cosmos DB region, with spaces between words and each word capitalized.\n:type location: str\n:keyword callable cls: A custom type or function that will be passed the direct response\n:return: LocationGetResult, or the result of cls(response)\n:rtype: ~azure.mgmt.cosmosdb.models.LocationGetResult\n:raises: ~azure.core.exceptions.HttpResponseError\n\"\"\"" + }, + "call": "location" + } + } + } } \ No newline at end of file diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/_version.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/_version.py index a55d01326aa8..a712687790e5 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/_version.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "6.2.0" +VERSION = "0.7.0" diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/_configuration.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/_configuration.py index 1120b220c278..74b9b42864aa 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/_configuration.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/_configuration.py @@ -45,7 +45,7 @@ def __init__( self.credential = credential self.subscription_id = subscription_id - self.api_version = "2021-03-15" + self.api_version = "2021-04-01-preview" self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) kwargs.setdefault('sdk_moniker', 'mgmt-cosmosdb/{}'.format(VERSION)) self._configure(**kwargs) diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/_cosmos_db_management_client.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/_cosmos_db_management_client.py index 45e1b1c89d65..adc4a676cb34 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/_cosmos_db_management_client.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/_cosmos_db_management_client.py @@ -8,6 +8,7 @@ from typing import Any, Optional, TYPE_CHECKING +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest from azure.mgmt.core import AsyncARMPipelineClient from msrest import Deserializer, Serializer @@ -34,13 +35,24 @@ from .operations import TableResourcesOperations from .operations import CassandraResourcesOperations from .operations import GremlinResourcesOperations +from .operations import RestorableDatabaseAccountsOperations +from .operations import CosmosDBManagementClientOperationsMixin from .operations import NotebookWorkspacesOperations +from .operations import RestorableSqlDatabasesOperations +from .operations import RestorableSqlContainersOperations +from .operations import RestorableSqlResourcesOperations +from .operations import RestorableMongodbDatabasesOperations +from .operations import RestorableMongodbCollectionsOperations +from .operations import RestorableMongodbResourcesOperations +from .operations import CassandraClustersOperations +from .operations import CassandraDataCentersOperations from .operations import PrivateLinkResourcesOperations from .operations import PrivateEndpointConnectionsOperations +from .operations import ServiceOperations from .. import models -class CosmosDBManagementClient(object): +class CosmosDBManagementClient(CosmosDBManagementClientOperationsMixin): """Azure Cosmos DB Database Service Resource Provider REST API. :ivar database_accounts: DatabaseAccountsOperations operations @@ -79,12 +91,32 @@ class CosmosDBManagementClient(object): :vartype cassandra_resources: azure.mgmt.cosmosdb.aio.operations.CassandraResourcesOperations :ivar gremlin_resources: GremlinResourcesOperations operations :vartype gremlin_resources: azure.mgmt.cosmosdb.aio.operations.GremlinResourcesOperations + :ivar restorable_database_accounts: RestorableDatabaseAccountsOperations operations + :vartype restorable_database_accounts: azure.mgmt.cosmosdb.aio.operations.RestorableDatabaseAccountsOperations :ivar notebook_workspaces: NotebookWorkspacesOperations operations :vartype notebook_workspaces: azure.mgmt.cosmosdb.aio.operations.NotebookWorkspacesOperations + :ivar restorable_sql_databases: RestorableSqlDatabasesOperations operations + :vartype restorable_sql_databases: azure.mgmt.cosmosdb.aio.operations.RestorableSqlDatabasesOperations + :ivar restorable_sql_containers: RestorableSqlContainersOperations operations + :vartype restorable_sql_containers: azure.mgmt.cosmosdb.aio.operations.RestorableSqlContainersOperations + :ivar restorable_sql_resources: RestorableSqlResourcesOperations operations + :vartype restorable_sql_resources: azure.mgmt.cosmosdb.aio.operations.RestorableSqlResourcesOperations + :ivar restorable_mongodb_databases: RestorableMongodbDatabasesOperations operations + :vartype restorable_mongodb_databases: azure.mgmt.cosmosdb.aio.operations.RestorableMongodbDatabasesOperations + :ivar restorable_mongodb_collections: RestorableMongodbCollectionsOperations operations + :vartype restorable_mongodb_collections: azure.mgmt.cosmosdb.aio.operations.RestorableMongodbCollectionsOperations + :ivar restorable_mongodb_resources: RestorableMongodbResourcesOperations operations + :vartype restorable_mongodb_resources: azure.mgmt.cosmosdb.aio.operations.RestorableMongodbResourcesOperations + :ivar cassandra_clusters: CassandraClustersOperations operations + :vartype cassandra_clusters: azure.mgmt.cosmosdb.aio.operations.CassandraClustersOperations + :ivar cassandra_data_centers: CassandraDataCentersOperations operations + :vartype cassandra_data_centers: azure.mgmt.cosmosdb.aio.operations.CassandraDataCentersOperations :ivar private_link_resources: PrivateLinkResourcesOperations operations :vartype private_link_resources: azure.mgmt.cosmosdb.aio.operations.PrivateLinkResourcesOperations :ivar private_endpoint_connections: PrivateEndpointConnectionsOperations operations :vartype private_endpoint_connections: azure.mgmt.cosmosdb.aio.operations.PrivateEndpointConnectionsOperations + :ivar service: ServiceOperations operations + :vartype service: azure.mgmt.cosmosdb.aio.operations.ServiceOperations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials_async.AsyncTokenCredential :param subscription_id: The ID of the target subscription. @@ -146,12 +178,49 @@ def __init__( self._client, self._config, self._serialize, self._deserialize) self.gremlin_resources = GremlinResourcesOperations( self._client, self._config, self._serialize, self._deserialize) + self.restorable_database_accounts = RestorableDatabaseAccountsOperations( + self._client, self._config, self._serialize, self._deserialize) self.notebook_workspaces = NotebookWorkspacesOperations( self._client, self._config, self._serialize, self._deserialize) + self.restorable_sql_databases = RestorableSqlDatabasesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.restorable_sql_containers = RestorableSqlContainersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.restorable_sql_resources = RestorableSqlResourcesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.restorable_mongodb_databases = RestorableMongodbDatabasesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.restorable_mongodb_collections = RestorableMongodbCollectionsOperations( + self._client, self._config, self._serialize, self._deserialize) + self.restorable_mongodb_resources = RestorableMongodbResourcesOperations( + self._client, self._config, self._serialize, self._deserialize) + self.cassandra_clusters = CassandraClustersOperations( + self._client, self._config, self._serialize, self._deserialize) + self.cassandra_data_centers = CassandraDataCentersOperations( + self._client, self._config, self._serialize, self._deserialize) self.private_link_resources = PrivateLinkResourcesOperations( self._client, self._config, self._serialize, self._deserialize) self.private_endpoint_connections = PrivateEndpointConnectionsOperations( self._client, self._config, self._serialize, self._deserialize) + self.service = ServiceOperations( + self._client, self._config, self._serialize, self._deserialize) + + async def _send_request(self, http_request: HttpRequest, **kwargs: Any) -> AsyncHttpResponse: + """Runs the network request through the client's chained policies. + + :param http_request: The network request you want to make. Required. + :type http_request: ~azure.core.pipeline.transport.HttpRequest + :keyword bool stream: Whether the response payload will be streamed. Defaults to True. + :return: The response of your network call. Does not do error handling on your response. + :rtype: ~azure.core.pipeline.transport.AsyncHttpResponse + """ + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + } + http_request.url = self._client.format_url(http_request.url, **path_format_arguments) + stream = kwargs.pop("stream", True) + pipeline_response = await self._client._pipeline.run(http_request, stream=stream, **kwargs) + return pipeline_response.http_response async def close(self) -> None: await self._client.close() diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/__init__.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/__init__.py index 6e148cf5877a..deda0cd3267f 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/__init__.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/__init__.py @@ -24,9 +24,20 @@ from ._table_resources_operations import TableResourcesOperations from ._cassandra_resources_operations import CassandraResourcesOperations from ._gremlin_resources_operations import GremlinResourcesOperations +from ._restorable_database_accounts_operations import RestorableDatabaseAccountsOperations +from ._cosmos_db_management_client_operations import CosmosDBManagementClientOperationsMixin from ._notebook_workspaces_operations import NotebookWorkspacesOperations +from ._restorable_sql_databases_operations import RestorableSqlDatabasesOperations +from ._restorable_sql_containers_operations import RestorableSqlContainersOperations +from ._restorable_sql_resources_operations import RestorableSqlResourcesOperations +from ._restorable_mongodb_databases_operations import RestorableMongodbDatabasesOperations +from ._restorable_mongodb_collections_operations import RestorableMongodbCollectionsOperations +from ._restorable_mongodb_resources_operations import RestorableMongodbResourcesOperations +from ._cassandra_clusters_operations import CassandraClustersOperations +from ._cassandra_data_centers_operations import CassandraDataCentersOperations from ._private_link_resources_operations import PrivateLinkResourcesOperations from ._private_endpoint_connections_operations import PrivateEndpointConnectionsOperations +from ._service_operations import ServiceOperations __all__ = [ 'DatabaseAccountsOperations', @@ -47,7 +58,18 @@ 'TableResourcesOperations', 'CassandraResourcesOperations', 'GremlinResourcesOperations', + 'RestorableDatabaseAccountsOperations', + 'CosmosDBManagementClientOperationsMixin', 'NotebookWorkspacesOperations', + 'RestorableSqlDatabasesOperations', + 'RestorableSqlContainersOperations', + 'RestorableSqlResourcesOperations', + 'RestorableMongodbDatabasesOperations', + 'RestorableMongodbCollectionsOperations', + 'RestorableMongodbResourcesOperations', + 'CassandraClustersOperations', + 'CassandraDataCentersOperations', 'PrivateLinkResourcesOperations', 'PrivateEndpointConnectionsOperations', + 'ServiceOperations', ] diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_cassandra_clusters_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_cassandra_clusters_operations.py new file mode 100644 index 000000000000..1003e3d55054 --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_cassandra_clusters_operations.py @@ -0,0 +1,973 @@ +# 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 typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar, Union +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +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.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class CassandraClustersOperations: + """CassandraClustersOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.cosmosdb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list_by_subscription( + self, + **kwargs + ) -> AsyncIterable["_models.ListClusters"]: + """List all managed Cassandra clusters in this subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ListClusters or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.cosmosdb.models.ListClusters] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ListClusters"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list_by_subscription.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('ListClusters', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_by_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/cassandraClusters'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name: str, + **kwargs + ) -> AsyncIterable["_models.ListClusters"]: + """List all managed Cassandra clusters in this resource group. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ListClusters or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.cosmosdb.models.ListClusters] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ListClusters"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list_by_resource_group.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('ListClusters', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters'} # type: ignore + + async def get( + self, + resource_group_name: str, + cluster_name: str, + **kwargs + ) -> "_models.ClusterResource": + """Get the properties of a managed Cassandra cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ClusterResource, or the result of cls(response) + :rtype: ~azure.mgmt.cosmosdb.models.ClusterResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ClusterResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ClusterResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}'} # type: ignore + + async def _delete_initial( + self, + resource_group_name: str, + cluster_name: str, + **kwargs + ) -> None: + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self._delete_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [202, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}'} # type: ignore + + async def begin_delete( + self, + resource_group_name: str, + cluster_name: str, + **kwargs + ) -> AsyncLROPoller[None]: + """Deletes a managed Cassandra cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :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: Pass in True if you'd like the AsyncARMPolling 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 None or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[None] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._delete_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + if cls: + return cls(pipeline_response, None, {}) + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}'} # type: ignore + + async def _create_update_initial( + self, + resource_group_name: str, + cluster_name: str, + body: "_models.ClusterResource", + **kwargs + ) -> "_models.ClusterResource": + cls = kwargs.pop('cls', None) # type: ClsType["_models.ClusterResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(body, 'ClusterResource') + 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 [200, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('ClusterResource', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('ClusterResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}'} # type: ignore + + async def begin_create_update( + self, + resource_group_name: str, + cluster_name: str, + body: "_models.ClusterResource", + **kwargs + ) -> AsyncLROPoller["_models.ClusterResource"]: + """Create or update a managed Cassandra cluster. When updating, you must specify all writable + properties. To update only some properties, use PATCH. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :param body: The properties specifying the desired state of the managed Cassandra cluster. + :type body: ~azure.mgmt.cosmosdb.models.ClusterResource + :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: Pass in True if you'd like the AsyncARMPolling 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 ClusterResource or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.cosmosdb.models.ClusterResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ClusterResource"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._create_update_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + body=body, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('ClusterResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_create_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}'} # type: ignore + + async def _update_initial( + self, + resource_group_name: str, + cluster_name: str, + body: "_models.ClusterResource", + **kwargs + ) -> "_models.ClusterResource": + cls = kwargs.pop('cls', None) # type: ClsType["_models.ClusterResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(body, 'ClusterResource') + body_content_kwargs['content'] = body_content + request = self._client.patch(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 [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('ClusterResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('ClusterResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}'} # type: ignore + + async def begin_update( + self, + resource_group_name: str, + cluster_name: str, + body: "_models.ClusterResource", + **kwargs + ) -> AsyncLROPoller["_models.ClusterResource"]: + """Updates some of the properties of a managed Cassandra cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :param body: Parameters to provide for specifying the managed Cassandra cluster. + :type body: ~azure.mgmt.cosmosdb.models.ClusterResource + :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: Pass in True if you'd like the AsyncARMPolling 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 ClusterResource or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.cosmosdb.models.ClusterResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ClusterResource"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._update_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + body=body, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('ClusterResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}'} # type: ignore + + async def _request_repair_initial( + self, + resource_group_name: str, + cluster_name: str, + body: "_models.RepairPostBody", + **kwargs + ) -> None: + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._request_repair_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(body, 'RepairPostBody') + 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 [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _request_repair_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/repair'} # type: ignore + + async def begin_request_repair( + self, + resource_group_name: str, + cluster_name: str, + body: "_models.RepairPostBody", + **kwargs + ) -> AsyncLROPoller[None]: + """Request that repair begin on this cluster as soon as possible. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :param body: Specification of what keyspaces and tables to run repair on. + :type body: ~azure.mgmt.cosmosdb.models.RepairPostBody + :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: Pass in True if you'd like the AsyncARMPolling 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 None or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[None] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._request_repair_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + body=body, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + if cls: + return cls(pipeline_response, None, {}) + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_request_repair.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/repair'} # type: ignore + + async def _fetch_node_status_initial( + self, + resource_group_name: str, + cluster_name: str, + **kwargs + ) -> Optional["_models.ClusterNodeStatus"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.ClusterNodeStatus"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self._fetch_node_status_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = self._client.post(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ClusterNodeStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _fetch_node_status_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/fetchNodeStatus'} # type: ignore + + async def begin_fetch_node_status( + self, + resource_group_name: str, + cluster_name: str, + **kwargs + ) -> AsyncLROPoller["_models.ClusterNodeStatus"]: + """Request the status of all nodes in the cluster (as returned by 'nodetool status'). + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :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: Pass in True if you'd like the AsyncARMPolling 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 ClusterNodeStatus or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.cosmosdb.models.ClusterNodeStatus] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ClusterNodeStatus"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._fetch_node_status_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('ClusterNodeStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_fetch_node_status.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/fetchNodeStatus'} # type: ignore + + def list_backups( + self, + resource_group_name: str, + cluster_name: str, + **kwargs + ) -> AsyncIterable["_models.ListBackups"]: + """List the backups of this cluster that are available to restore. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ListBackups or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.cosmosdb.models.ListBackups] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ListBackups"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list_backups.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('ListBackups', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_backups.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/backups'} # type: ignore + + async def get_backup( + self, + resource_group_name: str, + cluster_name: str, + backup_id: str, + **kwargs + ) -> "_models.BackupResource": + """Get the properties of an individual backup of this cluster that is available to restore. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :param backup_id: Id of a restorable backup of a Cassandra cluster. + :type backup_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupResource, or the result of cls(response) + :rtype: ~azure.mgmt.cosmosdb.models.BackupResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self.get_backup.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str', max_length=15, min_length=1, pattern=r'^[0-9]+$'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_backup.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/backups/{backupId}'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_cassandra_data_centers_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_cassandra_data_centers_operations.py new file mode 100644 index 000000000000..1968aa6dbd10 --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_cassandra_data_centers_operations.py @@ -0,0 +1,566 @@ +# 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 typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar, Union +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +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.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class CassandraDataCentersOperations: + """CassandraDataCentersOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.cosmosdb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + resource_group_name: str, + cluster_name: str, + **kwargs + ) -> AsyncIterable["_models.ListDataCenters"]: + """List all data centers in a particular managed Cassandra cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ListDataCenters or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.cosmosdb.models.ListDataCenters] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ListDataCenters"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('ListDataCenters', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/dataCenters'} # type: ignore + + async def get( + self, + resource_group_name: str, + cluster_name: str, + data_center_name: str, + **kwargs + ) -> "_models.DataCenterResource": + """Get the properties of a managed Cassandra data center. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :param data_center_name: Data center name in a managed Cassandra cluster. + :type data_center_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DataCenterResource, or the result of cls(response) + :rtype: ~azure.mgmt.cosmosdb.models.DataCenterResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DataCenterResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + 'dataCenterName': self._serialize.url("data_center_name", data_center_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DataCenterResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/dataCenters/{dataCenterName}'} # type: ignore + + async def _delete_initial( + self, + resource_group_name: str, + cluster_name: str, + data_center_name: str, + **kwargs + ) -> None: + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self._delete_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + 'dataCenterName': self._serialize.url("data_center_name", data_center_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [202, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/dataCenters/{dataCenterName}'} # type: ignore + + async def begin_delete( + self, + resource_group_name: str, + cluster_name: str, + data_center_name: str, + **kwargs + ) -> AsyncLROPoller[None]: + """Delete a managed Cassandra data center. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :param data_center_name: Data center name in a managed Cassandra cluster. + :type data_center_name: str + :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: Pass in True if you'd like the AsyncARMPolling 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 None or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[None] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._delete_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + data_center_name=data_center_name, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + if cls: + return cls(pipeline_response, None, {}) + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + 'dataCenterName': self._serialize.url("data_center_name", data_center_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/dataCenters/{dataCenterName}'} # type: ignore + + async def _create_update_initial( + self, + resource_group_name: str, + cluster_name: str, + data_center_name: str, + body: "_models.DataCenterResource", + **kwargs + ) -> "_models.DataCenterResource": + cls = kwargs.pop('cls', None) # type: ClsType["_models.DataCenterResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + 'dataCenterName': self._serialize.url("data_center_name", data_center_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(body, 'DataCenterResource') + 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 [200, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('DataCenterResource', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('DataCenterResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/dataCenters/{dataCenterName}'} # type: ignore + + async def begin_create_update( + self, + resource_group_name: str, + cluster_name: str, + data_center_name: str, + body: "_models.DataCenterResource", + **kwargs + ) -> AsyncLROPoller["_models.DataCenterResource"]: + """Create or update a managed Cassandra data center. When updating, overwrite all properties. To + update only some properties, use PATCH. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :param data_center_name: Data center name in a managed Cassandra cluster. + :type data_center_name: str + :param body: Parameters specifying the managed Cassandra data center. + :type body: ~azure.mgmt.cosmosdb.models.DataCenterResource + :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: Pass in True if you'd like the AsyncARMPolling 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 DataCenterResource or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.cosmosdb.models.DataCenterResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.DataCenterResource"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._create_update_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + data_center_name=data_center_name, + body=body, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('DataCenterResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + 'dataCenterName': self._serialize.url("data_center_name", data_center_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_create_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/dataCenters/{dataCenterName}'} # type: ignore + + async def _update_initial( + self, + resource_group_name: str, + cluster_name: str, + data_center_name: str, + body: "_models.DataCenterResource", + **kwargs + ) -> "_models.DataCenterResource": + cls = kwargs.pop('cls', None) # type: ClsType["_models.DataCenterResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + 'dataCenterName': self._serialize.url("data_center_name", data_center_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(body, 'DataCenterResource') + body_content_kwargs['content'] = body_content + request = self._client.patch(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 [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('DataCenterResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('DataCenterResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/dataCenters/{dataCenterName}'} # type: ignore + + async def begin_update( + self, + resource_group_name: str, + cluster_name: str, + data_center_name: str, + body: "_models.DataCenterResource", + **kwargs + ) -> AsyncLROPoller["_models.DataCenterResource"]: + """Update some of the properties of a managed Cassandra data center. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :param data_center_name: Data center name in a managed Cassandra cluster. + :type data_center_name: str + :param body: Parameters to provide for specifying the managed Cassandra data center. + :type body: ~azure.mgmt.cosmosdb.models.DataCenterResource + :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: Pass in True if you'd like the AsyncARMPolling 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 DataCenterResource or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.cosmosdb.models.DataCenterResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.DataCenterResource"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._update_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + data_center_name=data_center_name, + body=body, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('DataCenterResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + 'dataCenterName': self._serialize.url("data_center_name", data_center_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/dataCenters/{dataCenterName}'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_cassandra_resources_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_cassandra_resources_operations.py index 05b59c50dd88..3dc2fa2750e2 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_cassandra_resources_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_cassandra_resources_operations.py @@ -65,7 +65,7 @@ def list_cassandra_keyspaces( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -143,7 +143,7 @@ async def get_cassandra_keyspace( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -193,7 +193,7 @@ async def _create_update_cassandra_keyspace_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -258,8 +258,8 @@ async def begin_create_update_cassandra_keyspace( :type create_update_cassandra_keyspace_parameters: ~azure.mgmt.cosmosdb.models.CassandraKeyspaceCreateUpdateParameters :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 AsyncARMPolling 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 CassandraKeyspaceGetResults or the result of cls(response) @@ -326,7 +326,7 @@ async def _delete_cassandra_keyspace_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_cassandra_keyspace_initial.metadata['url'] # type: ignore @@ -375,8 +375,8 @@ async def begin_delete_cassandra_keyspace( :type keyspace_name: str :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 AsyncARMPolling 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 None or the result of cls(response) @@ -453,7 +453,7 @@ async def get_cassandra_keyspace_throughput( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -503,7 +503,7 @@ async def _update_cassandra_keyspace_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -568,8 +568,8 @@ async def begin_update_cassandra_keyspace_throughput( :type update_throughput_parameters: ~azure.mgmt.cosmosdb.models.ThroughputSettingsUpdateParameters :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -636,7 +636,7 @@ async def _migrate_cassandra_keyspace_to_autoscale_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -663,8 +663,7 @@ async def _migrate_cassandra_keyspace_to_autoscale_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -693,8 +692,8 @@ async def begin_migrate_cassandra_keyspace_to_autoscale( :type keyspace_name: str :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -760,7 +759,7 @@ async def _migrate_cassandra_keyspace_to_manual_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -787,8 +786,7 @@ async def _migrate_cassandra_keyspace_to_manual_throughput_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -817,8 +815,8 @@ async def begin_migrate_cassandra_keyspace_to_manual_throughput( :type keyspace_name: str :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -897,7 +895,7 @@ def list_cassandra_tables( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -978,7 +976,7 @@ async def get_cassandra_table( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1030,7 +1028,7 @@ async def _create_update_cassandra_table_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -1099,8 +1097,8 @@ async def begin_create_update_cassandra_table( :type create_update_cassandra_table_parameters: ~azure.mgmt.cosmosdb.models.CassandraTableCreateUpdateParameters :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 AsyncARMPolling 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 CassandraTableGetResults or the result of cls(response) @@ -1170,7 +1168,7 @@ async def _delete_cassandra_table_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_cassandra_table_initial.metadata['url'] # type: ignore @@ -1223,8 +1221,8 @@ async def begin_delete_cassandra_table( :type table_name: str :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 AsyncARMPolling 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 None or the result of cls(response) @@ -1306,7 +1304,7 @@ async def get_cassandra_table_throughput( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1358,7 +1356,7 @@ async def _update_cassandra_table_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -1427,8 +1425,8 @@ async def begin_update_cassandra_table_throughput( :type update_throughput_parameters: ~azure.mgmt.cosmosdb.models.ThroughputSettingsUpdateParameters :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -1498,7 +1496,7 @@ async def _migrate_cassandra_table_to_autoscale_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1526,8 +1524,7 @@ async def _migrate_cassandra_table_to_autoscale_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -1559,8 +1556,8 @@ async def begin_migrate_cassandra_table_to_autoscale( :type table_name: str :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -1629,7 +1626,7 @@ async def _migrate_cassandra_table_to_manual_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1657,8 +1654,7 @@ async def _migrate_cassandra_table_to_manual_throughput_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -1690,8 +1686,8 @@ async def begin_migrate_cassandra_table_to_manual_throughput( :type table_name: str :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_collection_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_collection_operations.py index 52b433abe27b..6e2d79aee671 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_collection_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_collection_operations.py @@ -75,7 +75,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -162,7 +162,7 @@ def list_usages( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -246,7 +246,7 @@ def list_metric_definitions( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_collection_partition_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_collection_partition_operations.py index ad0290837319..a2eeafcfcbb4 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_collection_partition_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_collection_partition_operations.py @@ -75,7 +75,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -162,7 +162,7 @@ def list_usages( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_collection_partition_region_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_collection_partition_region_operations.py index 5b2264824718..95c210fb63b8 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_collection_partition_region_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_collection_partition_region_operations.py @@ -78,7 +78,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_collection_region_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_collection_region_operations.py index 8eee680cc5db..9a8dcf801298 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_collection_region_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_collection_region_operations.py @@ -78,7 +78,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_cosmos_db_management_client_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_cosmos_db_management_client_operations.py new file mode 100644 index 000000000000..83ce509b8424 --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_cosmos_db_management_client_operations.py @@ -0,0 +1,142 @@ +# 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 typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +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.mgmt.core.exceptions import ARMErrorFormat + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class CosmosDBManagementClientOperationsMixin: + + def location_list( + self, + **kwargs + ) -> AsyncIterable["_models.LocationListResult"]: + """List Cosmos DB locations and their properties. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either LocationListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.cosmosdb.models.LocationListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.LocationListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.location_list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('LocationListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + location_list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations'} # type: ignore + + async def location_get( + self, + location: str, + **kwargs + ) -> "_models.LocationGetResult": + """Get the properties of an existing Cosmos DB location. + + :param location: Cosmos DB region, with spaces between words and each word capitalized. + :type location: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: LocationGetResult, or the result of cls(response) + :rtype: ~azure.mgmt.cosmosdb.models.LocationGetResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.LocationGetResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self.location_get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'location': self._serialize.url("location", location, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('LocationGetResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + location_get.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_database_account_region_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_database_account_region_operations.py index dd446a8c77ec..5127d0c48877 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_database_account_region_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_database_account_region_operations.py @@ -71,7 +71,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_database_accounts_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_database_accounts_operations.py index d80657ad106f..f3e7a4c64d6a 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_database_accounts_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_database_accounts_operations.py @@ -65,7 +65,7 @@ async def get( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -113,7 +113,7 @@ async def _update_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -171,8 +171,8 @@ async def begin_update( :type update_parameters: ~azure.mgmt.cosmosdb.models.DatabaseAccountUpdateParameters :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 AsyncARMPolling 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 DatabaseAccountGetResults or the result of cls(response) @@ -237,7 +237,7 @@ async def _create_or_update_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -296,8 +296,8 @@ async def begin_create_or_update( :type create_update_parameters: ~azure.mgmt.cosmosdb.models.DatabaseAccountCreateUpdateParameters :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 AsyncARMPolling 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 DatabaseAccountGetResults or the result of cls(response) @@ -361,7 +361,7 @@ async def _delete_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_initial.metadata['url'] # type: ignore @@ -406,8 +406,8 @@ async def begin_delete( :type account_name: str :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 AsyncARMPolling 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 None or the result of cls(response) @@ -468,7 +468,7 @@ async def _failover_priority_change_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") # Construct URL @@ -524,8 +524,8 @@ async def begin_failover_priority_change( :type failover_parameters: ~azure.mgmt.cosmosdb.models.FailoverPolicies :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 AsyncARMPolling 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 None or the result of cls(response) @@ -591,7 +591,7 @@ def list( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -660,7 +660,7 @@ def list_by_resource_group( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -733,7 +733,7 @@ async def list_keys( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -791,7 +791,7 @@ async def list_connection_strings( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -839,7 +839,7 @@ async def _offline_region_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -870,7 +870,7 @@ async def _offline_region_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -895,8 +895,8 @@ async def begin_offline_region( :type region_parameter_for_offline: ~azure.mgmt.cosmosdb.models.RegionForOnlineOffline :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 AsyncARMPolling 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 None or the result of cls(response) @@ -958,7 +958,7 @@ async def _online_region_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -989,7 +989,7 @@ async def _online_region_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -1014,8 +1014,8 @@ async def begin_online_region( :type region_parameter_for_online: ~azure.mgmt.cosmosdb.models.RegionForOnlineOffline :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 AsyncARMPolling 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 None or the result of cls(response) @@ -1087,7 +1087,7 @@ async def get_read_only_keys( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1145,7 +1145,7 @@ async def list_read_only_keys( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1193,7 +1193,7 @@ async def _regenerate_key_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") # Construct URL @@ -1246,8 +1246,8 @@ async def begin_regenerate_key( :type key_to_regenerate: ~azure.mgmt.cosmosdb.models.DatabaseAccountRegenerateKeyParameters :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 AsyncARMPolling 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 None or the result of cls(response) @@ -1318,7 +1318,7 @@ async def check_name_exists( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self.check_name_exists.metadata['url'] # type: ignore @@ -1375,7 +1375,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -1454,7 +1454,7 @@ def list_usages( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -1530,7 +1530,7 @@ def list_metric_definitions( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_database_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_database_operations.py index fa841ce64fe1..0a7aed97ff9c 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_database_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_database_operations.py @@ -72,7 +72,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -155,7 +155,7 @@ def list_usages( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -235,7 +235,7 @@ def list_metric_definitions( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_gremlin_resources_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_gremlin_resources_operations.py index b343b60a9535..968b7c864ff0 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_gremlin_resources_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_gremlin_resources_operations.py @@ -65,7 +65,7 @@ def list_gremlin_databases( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -143,7 +143,7 @@ async def get_gremlin_database( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -193,7 +193,7 @@ async def _create_update_gremlin_database_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -258,8 +258,8 @@ async def begin_create_update_gremlin_database( :type create_update_gremlin_database_parameters: ~azure.mgmt.cosmosdb.models.GremlinDatabaseCreateUpdateParameters :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 AsyncARMPolling 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 GremlinDatabaseGetResults or the result of cls(response) @@ -326,7 +326,7 @@ async def _delete_gremlin_database_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_gremlin_database_initial.metadata['url'] # type: ignore @@ -375,8 +375,8 @@ async def begin_delete_gremlin_database( :type database_name: str :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 AsyncARMPolling 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 None or the result of cls(response) @@ -453,7 +453,7 @@ async def get_gremlin_database_throughput( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -503,7 +503,7 @@ async def _update_gremlin_database_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -568,8 +568,8 @@ async def begin_update_gremlin_database_throughput( :type update_throughput_parameters: ~azure.mgmt.cosmosdb.models.ThroughputSettingsUpdateParameters :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -636,7 +636,7 @@ async def _migrate_gremlin_database_to_autoscale_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -663,8 +663,7 @@ async def _migrate_gremlin_database_to_autoscale_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -693,8 +692,8 @@ async def begin_migrate_gremlin_database_to_autoscale( :type database_name: str :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -760,7 +759,7 @@ async def _migrate_gremlin_database_to_manual_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -787,8 +786,7 @@ async def _migrate_gremlin_database_to_manual_throughput_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -817,8 +815,8 @@ async def begin_migrate_gremlin_database_to_manual_throughput( :type database_name: str :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -897,7 +895,7 @@ def list_gremlin_graphs( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -978,7 +976,7 @@ async def get_gremlin_graph( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1030,7 +1028,7 @@ async def _create_update_gremlin_graph_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -1099,8 +1097,8 @@ async def begin_create_update_gremlin_graph( :type create_update_gremlin_graph_parameters: ~azure.mgmt.cosmosdb.models.GremlinGraphCreateUpdateParameters :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 AsyncARMPolling 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 GremlinGraphGetResults or the result of cls(response) @@ -1170,7 +1168,7 @@ async def _delete_gremlin_graph_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_gremlin_graph_initial.metadata['url'] # type: ignore @@ -1223,8 +1221,8 @@ async def begin_delete_gremlin_graph( :type graph_name: str :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 AsyncARMPolling 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 None or the result of cls(response) @@ -1306,7 +1304,7 @@ async def get_gremlin_graph_throughput( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1358,7 +1356,7 @@ async def _update_gremlin_graph_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -1427,8 +1425,8 @@ async def begin_update_gremlin_graph_throughput( :type update_throughput_parameters: ~azure.mgmt.cosmosdb.models.ThroughputSettingsUpdateParameters :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -1498,7 +1496,7 @@ async def _migrate_gremlin_graph_to_autoscale_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1526,8 +1524,7 @@ async def _migrate_gremlin_graph_to_autoscale_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -1559,8 +1556,8 @@ async def begin_migrate_gremlin_graph_to_autoscale( :type graph_name: str :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -1629,7 +1626,7 @@ async def _migrate_gremlin_graph_to_manual_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1657,8 +1654,7 @@ async def _migrate_gremlin_graph_to_manual_throughput_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -1690,8 +1686,8 @@ async def begin_migrate_gremlin_graph_to_manual_throughput( :type graph_name: str :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_mongo_db_resources_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_mongo_db_resources_operations.py index 33828e40257e..175d5b1600f1 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_mongo_db_resources_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_mongo_db_resources_operations.py @@ -65,7 +65,7 @@ def list_mongo_db_databases( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -143,7 +143,7 @@ async def get_mongo_db_database( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -193,7 +193,7 @@ async def _create_update_mongo_db_database_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -258,8 +258,8 @@ async def begin_create_update_mongo_db_database( :type create_update_mongo_db_database_parameters: ~azure.mgmt.cosmosdb.models.MongoDBDatabaseCreateUpdateParameters :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 AsyncARMPolling 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 MongoDBDatabaseGetResults or the result of cls(response) @@ -326,7 +326,7 @@ async def _delete_mongo_db_database_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_mongo_db_database_initial.metadata['url'] # type: ignore @@ -375,8 +375,8 @@ async def begin_delete_mongo_db_database( :type database_name: str :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 AsyncARMPolling 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 None or the result of cls(response) @@ -453,7 +453,7 @@ async def get_mongo_db_database_throughput( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -503,7 +503,7 @@ async def _update_mongo_db_database_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -535,8 +535,7 @@ async def _update_mongo_db_database_throughput_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -569,8 +568,8 @@ async def begin_update_mongo_db_database_throughput( :type update_throughput_parameters: ~azure.mgmt.cosmosdb.models.ThroughputSettingsUpdateParameters :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -637,7 +636,7 @@ async def _migrate_mongo_db_database_to_autoscale_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -664,8 +663,7 @@ async def _migrate_mongo_db_database_to_autoscale_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -694,8 +692,8 @@ async def begin_migrate_mongo_db_database_to_autoscale( :type database_name: str :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -761,7 +759,7 @@ async def _migrate_mongo_db_database_to_manual_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -788,8 +786,7 @@ async def _migrate_mongo_db_database_to_manual_throughput_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -818,8 +815,8 @@ async def begin_migrate_mongo_db_database_to_manual_throughput( :type database_name: str :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -898,7 +895,7 @@ def list_mongo_db_collections( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -979,7 +976,7 @@ async def get_mongo_db_collection( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1031,7 +1028,7 @@ async def _create_update_mongo_db_collection_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -1100,8 +1097,8 @@ async def begin_create_update_mongo_db_collection( :type create_update_mongo_db_collection_parameters: ~azure.mgmt.cosmosdb.models.MongoDBCollectionCreateUpdateParameters :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 AsyncARMPolling 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 MongoDBCollectionGetResults or the result of cls(response) @@ -1171,7 +1168,7 @@ async def _delete_mongo_db_collection_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_mongo_db_collection_initial.metadata['url'] # type: ignore @@ -1224,8 +1221,8 @@ async def begin_delete_mongo_db_collection( :type collection_name: str :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 AsyncARMPolling 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 None or the result of cls(response) @@ -1307,7 +1304,7 @@ async def get_mongo_db_collection_throughput( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1359,7 +1356,7 @@ async def _update_mongo_db_collection_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -1428,8 +1425,8 @@ async def begin_update_mongo_db_collection_throughput( :type update_throughput_parameters: ~azure.mgmt.cosmosdb.models.ThroughputSettingsUpdateParameters :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -1499,7 +1496,7 @@ async def _migrate_mongo_db_collection_to_autoscale_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1527,8 +1524,7 @@ async def _migrate_mongo_db_collection_to_autoscale_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -1560,8 +1556,8 @@ async def begin_migrate_mongo_db_collection_to_autoscale( :type collection_name: str :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -1630,7 +1626,7 @@ async def _migrate_mongo_db_collection_to_manual_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1658,8 +1654,7 @@ async def _migrate_mongo_db_collection_to_manual_throughput_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -1691,8 +1686,8 @@ async def begin_migrate_mongo_db_collection_to_manual_throughput( :type collection_name: str :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_notebook_workspaces_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_notebook_workspaces_operations.py index f997290fa4f7..c8d6f72fe41b 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_notebook_workspaces_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_notebook_workspaces_operations.py @@ -65,7 +65,7 @@ def list_by_database_account( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -107,7 +107,7 @@ async def get_next(next_link=None): response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize(_models.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) @@ -143,7 +143,7 @@ async def get( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -170,7 +170,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.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('NotebookWorkspace', pipeline_response) @@ -186,7 +186,7 @@ async def _create_or_update_initial( resource_group_name: str, account_name: str, notebook_workspace_name: Union[str, "_models.NotebookWorkspaceName"], - notebook_create_update_parameters: "_models.ARMProxyResource", + notebook_create_update_parameters: "_models.NotebookWorkspaceCreateUpdateParameters", **kwargs ) -> "_models.NotebookWorkspace": cls = kwargs.pop('cls', None) # type: ClsType["_models.NotebookWorkspace"] @@ -194,7 +194,7 @@ async def _create_or_update_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -218,7 +218,7 @@ async def _create_or_update_initial( header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') body_content_kwargs = {} # type: Dict[str, Any] - body_content = self._serialize.body(notebook_create_update_parameters, 'ARMProxyResource') + body_content = self._serialize.body(notebook_create_update_parameters, 'NotebookWorkspaceCreateUpdateParameters') 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) @@ -226,7 +226,7 @@ async def _create_or_update_initial( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('NotebookWorkspace', pipeline_response) @@ -242,7 +242,7 @@ async def begin_create_or_update( resource_group_name: str, account_name: str, notebook_workspace_name: Union[str, "_models.NotebookWorkspaceName"], - notebook_create_update_parameters: "_models.ARMProxyResource", + notebook_create_update_parameters: "_models.NotebookWorkspaceCreateUpdateParameters", **kwargs ) -> AsyncLROPoller["_models.NotebookWorkspace"]: """Creates the notebook workspace for a Cosmos DB account. @@ -255,11 +255,11 @@ async def begin_create_or_update( :type notebook_workspace_name: str or ~azure.mgmt.cosmosdb.models.NotebookWorkspaceName :param notebook_create_update_parameters: The notebook workspace to create for the current database account. - :type notebook_create_update_parameters: ~azure.mgmt.cosmosdb.models.ARMProxyResource + :type notebook_create_update_parameters: ~azure.mgmt.cosmosdb.models.NotebookWorkspaceCreateUpdateParameters :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 AsyncARMPolling 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 NotebookWorkspace or the result of cls(response) @@ -326,7 +326,7 @@ async def _delete_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -353,7 +353,7 @@ async def _delete_initial( if response.status_code not in [202, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -378,8 +378,8 @@ async def begin_delete( :type notebook_workspace_name: str or ~azure.mgmt.cosmosdb.models.NotebookWorkspaceName :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 AsyncARMPolling 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 None or the result of cls(response) @@ -455,7 +455,7 @@ async def list_connection_info( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -482,7 +482,7 @@ async def list_connection_info( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('NotebookWorkspaceConnectionInfoResult', pipeline_response) @@ -505,7 +505,7 @@ async def _regenerate_auth_token_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -532,7 +532,7 @@ async def _regenerate_auth_token_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -557,8 +557,8 @@ async def begin_regenerate_auth_token( :type notebook_workspace_name: str or ~azure.mgmt.cosmosdb.models.NotebookWorkspaceName :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 AsyncARMPolling 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 None or the result of cls(response) @@ -621,7 +621,7 @@ async def _start_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -648,7 +648,7 @@ async def _start_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -673,8 +673,8 @@ async def begin_start( :type notebook_workspace_name: str or ~azure.mgmt.cosmosdb.models.NotebookWorkspaceName :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 AsyncARMPolling 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 None or the result of cls(response) diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_operations.py index 0e2a18a031d8..998dce89ca71 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_operations.py @@ -57,7 +57,7 @@ def list( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_partition_key_range_id_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_partition_key_range_id_operations.py index 053cef75df7c..f6aa1b80a39d 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_partition_key_range_id_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_partition_key_range_id_operations.py @@ -77,7 +77,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_partition_key_range_id_region_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_partition_key_range_id_region_operations.py index b52e79d46b76..7772237e7891 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_partition_key_range_id_region_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_partition_key_range_id_region_operations.py @@ -81,7 +81,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_percentile_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_percentile_operations.py index 5cde9187f986..dd8b1c3fc2b2 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_percentile_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_percentile_operations.py @@ -69,7 +69,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_percentile_source_target_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_percentile_source_target_operations.py index 760d8c38d553..97afd50ed9af 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_percentile_source_target_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_percentile_source_target_operations.py @@ -77,7 +77,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_percentile_target_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_percentile_target_operations.py index 352cd1108059..82730cfceae7 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_percentile_target_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_percentile_target_operations.py @@ -73,7 +73,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_private_endpoint_connections_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_private_endpoint_connections_operations.py index 4a902a3f9555..61bbfe55d74f 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_private_endpoint_connections_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_private_endpoint_connections_operations.py @@ -65,7 +65,7 @@ def list_by_database_account( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -142,7 +142,7 @@ async def get( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -192,7 +192,7 @@ async def _create_or_update_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -224,7 +224,7 @@ async def _create_or_update_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = None @@ -257,8 +257,8 @@ async def begin_create_or_update( :type parameters: ~azure.mgmt.cosmosdb.models.PrivateEndpointConnection :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 AsyncARMPolling 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 PrivateEndpointConnection or the result of cls(response) @@ -325,7 +325,7 @@ async def _delete_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -352,7 +352,7 @@ async def _delete_initial( if response.status_code not in [202, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -377,8 +377,8 @@ async def begin_delete( :type private_endpoint_connection_name: str :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 AsyncARMPolling 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 None or the result of cls(response) diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_private_link_resources_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_private_link_resources_operations.py index fd5caa8644fc..78e26afb5017 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_private_link_resources_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_private_link_resources_operations.py @@ -63,7 +63,7 @@ def list_by_database_account( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -140,7 +140,7 @@ async def get( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_database_accounts_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_database_accounts_operations.py new file mode 100644 index 000000000000..868985365288 --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_database_accounts_operations.py @@ -0,0 +1,240 @@ +# 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 typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +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.mgmt.core.exceptions import ARMErrorFormat + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class RestorableDatabaseAccountsOperations: + """RestorableDatabaseAccountsOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.cosmosdb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list_by_location( + self, + location: str, + **kwargs + ) -> AsyncIterable["_models.RestorableDatabaseAccountsListResult"]: + """Lists all the restorable Azure Cosmos DB database accounts available under the subscription and + in a region. This call requires + 'Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read' permission. + + :param location: Cosmos DB region, with spaces between words and each word capitalized. + :type location: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RestorableDatabaseAccountsListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.cosmosdb.models.RestorableDatabaseAccountsListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestorableDatabaseAccountsListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list_by_location.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'location': self._serialize.url("location", location, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('RestorableDatabaseAccountsListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_by_location.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts'} # type: ignore + + def list( + self, + **kwargs + ) -> AsyncIterable["_models.RestorableDatabaseAccountsListResult"]: + """Lists all the restorable Azure Cosmos DB database accounts available under the subscription. + This call requires 'Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read' permission. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RestorableDatabaseAccountsListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.cosmosdb.models.RestorableDatabaseAccountsListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestorableDatabaseAccountsListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('RestorableDatabaseAccountsListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/restorableDatabaseAccounts'} # type: ignore + + async def get_by_location( + self, + location: str, + instance_id: str, + **kwargs + ) -> "_models.RestorableDatabaseAccountGetResult": + """Retrieves the properties of an existing Azure Cosmos DB restorable database account. This call + requires 'Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read/*' permission. + + :param location: Cosmos DB region, with spaces between words and each word capitalized. + :type location: str + :param instance_id: The instanceId GUID of a restorable database account. + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RestorableDatabaseAccountGetResult, or the result of cls(response) + :rtype: ~azure.mgmt.cosmosdb.models.RestorableDatabaseAccountGetResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestorableDatabaseAccountGetResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self.get_by_location.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'location': self._serialize.url("location", location, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RestorableDatabaseAccountGetResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_by_location.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts/{instanceId}'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_mongodb_collections_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_mongodb_collections_operations.py new file mode 100644 index 000000000000..92d45bba1c59 --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_mongodb_collections_operations.py @@ -0,0 +1,123 @@ +# 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 typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +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.mgmt.core.exceptions import ARMErrorFormat + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class RestorableMongodbCollectionsOperations: + """RestorableMongodbCollectionsOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.cosmosdb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + location: str, + instance_id: str, + restorable_mongodb_database_rid: Optional[str] = None, + **kwargs + ) -> AsyncIterable["_models.RestorableMongodbCollectionsListResult"]: + """Show the event feed of all mutations done on all the Azure Cosmos DB MongoDB collections under + a specific database. This helps in scenario where container was accidentally deleted. This + API requires 'Microsoft.DocumentDB/locations/restorableDatabaseAccounts/.../read' permission. + + :param location: Cosmos DB region, with spaces between words and each word capitalized. + :type location: str + :param instance_id: The instanceId GUID of a restorable database account. + :type instance_id: str + :param restorable_mongodb_database_rid: The resource ID of the MongoDB database. + :type restorable_mongodb_database_rid: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RestorableMongodbCollectionsListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.cosmosdb.models.RestorableMongodbCollectionsListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestorableMongodbCollectionsListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'location': self._serialize.url("location", location, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + if restorable_mongodb_database_rid is not None: + query_parameters['restorableMongodbDatabaseRid'] = self._serialize.query("restorable_mongodb_database_rid", restorable_mongodb_database_rid, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('RestorableMongodbCollectionsListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts/{instanceId}/restorableMongodbCollections'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_mongodb_databases_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_mongodb_databases_operations.py new file mode 100644 index 000000000000..d4ce7559d83e --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_mongodb_databases_operations.py @@ -0,0 +1,119 @@ +# 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 typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +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.mgmt.core.exceptions import ARMErrorFormat + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class RestorableMongodbDatabasesOperations: + """RestorableMongodbDatabasesOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.cosmosdb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + location: str, + instance_id: str, + **kwargs + ) -> AsyncIterable["_models.RestorableMongodbDatabasesListResult"]: + """Show the event feed of all mutations done on all the Azure Cosmos DB MongoDB databases under + the restorable account. This helps in scenario where database was accidentally deleted to get + the deletion time. This API requires + 'Microsoft.DocumentDB/locations/restorableDatabaseAccounts/.../read' permission. + + :param location: Cosmos DB region, with spaces between words and each word capitalized. + :type location: str + :param instance_id: The instanceId GUID of a restorable database account. + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RestorableMongodbDatabasesListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.cosmosdb.models.RestorableMongodbDatabasesListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestorableMongodbDatabasesListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'location': self._serialize.url("location", location, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('RestorableMongodbDatabasesListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts/{instanceId}/restorableMongodbDatabases'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_mongodb_resources_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_mongodb_resources_operations.py new file mode 100644 index 000000000000..dc473b4cf32d --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_mongodb_resources_operations.py @@ -0,0 +1,129 @@ +# 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 typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +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.mgmt.core.exceptions import ARMErrorFormat + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class RestorableMongodbResourcesOperations: + """RestorableMongodbResourcesOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.cosmosdb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + location: str, + instance_id: str, + restore_location: Optional[str] = None, + restore_timestamp_in_utc: Optional[str] = None, + **kwargs + ) -> AsyncIterable["_models.RestorableMongodbResourcesListResult"]: + """Return a list of database and collection combo that exist on the account at the given timestamp + and location. This helps in scenarios to validate what resources exist at given timestamp and + location. This API requires + 'Microsoft.DocumentDB/locations/restorableDatabaseAccounts/.../read' permission. + + :param location: Cosmos DB region, with spaces between words and each word capitalized. + :type location: str + :param instance_id: The instanceId GUID of a restorable database account. + :type instance_id: str + :param restore_location: The location where the restorable resources are located. + :type restore_location: str + :param restore_timestamp_in_utc: The timestamp when the restorable resources existed. + :type restore_timestamp_in_utc: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RestorableMongodbResourcesListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.cosmosdb.models.RestorableMongodbResourcesListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestorableMongodbResourcesListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'location': self._serialize.url("location", location, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + if restore_location is not None: + query_parameters['restoreLocation'] = self._serialize.query("restore_location", restore_location, 'str') + if restore_timestamp_in_utc is not None: + query_parameters['restoreTimestampInUtc'] = self._serialize.query("restore_timestamp_in_utc", restore_timestamp_in_utc, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('RestorableMongodbResourcesListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts/{instanceId}/restorableMongodbResources'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_sql_containers_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_sql_containers_operations.py new file mode 100644 index 000000000000..3f99046726ee --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_sql_containers_operations.py @@ -0,0 +1,133 @@ +# 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 typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +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.mgmt.core.exceptions import ARMErrorFormat + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class RestorableSqlContainersOperations: + """RestorableSqlContainersOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.cosmosdb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + location: str, + instance_id: str, + restorable_sql_database_rid: Optional[str] = None, + start_time: Optional[str] = None, + end_time: Optional[str] = None, + **kwargs + ) -> AsyncIterable["_models.RestorableSqlContainersListResult"]: + """Show the event feed of all mutations done on all the Azure Cosmos DB SQL containers under a + specific database. This helps in scenario where container was accidentally deleted. This API + requires 'Microsoft.DocumentDB/locations/restorableDatabaseAccounts/.../read' permission. + + :param location: Cosmos DB region, with spaces between words and each word capitalized. + :type location: str + :param instance_id: The instanceId GUID of a restorable database account. + :type instance_id: str + :param restorable_sql_database_rid: The resource ID of the SQL database. + :type restorable_sql_database_rid: str + :param start_time: The snapshot create timestamp after which snapshots need to be listed. + :type start_time: str + :param end_time: The snapshot create timestamp before which snapshots need to be listed. + :type end_time: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RestorableSqlContainersListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.cosmosdb.models.RestorableSqlContainersListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestorableSqlContainersListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'location': self._serialize.url("location", location, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + if restorable_sql_database_rid is not None: + query_parameters['restorableSqlDatabaseRid'] = self._serialize.query("restorable_sql_database_rid", restorable_sql_database_rid, 'str') + if start_time is not None: + query_parameters['startTime'] = self._serialize.query("start_time", start_time, 'str') + if end_time is not None: + query_parameters['endTime'] = self._serialize.query("end_time", end_time, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('RestorableSqlContainersListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts/{instanceId}/restorableSqlContainers'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_sql_databases_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_sql_databases_operations.py new file mode 100644 index 000000000000..96af123d47b7 --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_sql_databases_operations.py @@ -0,0 +1,119 @@ +# 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 typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +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.mgmt.core.exceptions import ARMErrorFormat + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class RestorableSqlDatabasesOperations: + """RestorableSqlDatabasesOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.cosmosdb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + location: str, + instance_id: str, + **kwargs + ) -> AsyncIterable["_models.RestorableSqlDatabasesListResult"]: + """Show the event feed of all mutations done on all the Azure Cosmos DB SQL databases under the + restorable account. This helps in scenario where database was accidentally deleted to get the + deletion time. This API requires + 'Microsoft.DocumentDB/locations/restorableDatabaseAccounts/.../read' permission. + + :param location: Cosmos DB region, with spaces between words and each word capitalized. + :type location: str + :param instance_id: The instanceId GUID of a restorable database account. + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RestorableSqlDatabasesListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.cosmosdb.models.RestorableSqlDatabasesListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestorableSqlDatabasesListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'location': self._serialize.url("location", location, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('RestorableSqlDatabasesListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts/{instanceId}/restorableSqlDatabases'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_sql_resources_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_sql_resources_operations.py new file mode 100644 index 000000000000..7ce7d135b7d4 --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_restorable_sql_resources_operations.py @@ -0,0 +1,129 @@ +# 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 typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +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.mgmt.core.exceptions import ARMErrorFormat + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class RestorableSqlResourcesOperations: + """RestorableSqlResourcesOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.cosmosdb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + location: str, + instance_id: str, + restore_location: Optional[str] = None, + restore_timestamp_in_utc: Optional[str] = None, + **kwargs + ) -> AsyncIterable["_models.RestorableSqlResourcesListResult"]: + """Return a list of database and container combo that exist on the account at the given timestamp + and location. This helps in scenarios to validate what resources exist at given timestamp and + location. This API requires + 'Microsoft.DocumentDB/locations/restorableDatabaseAccounts/.../read' permission. + + :param location: Cosmos DB region, with spaces between words and each word capitalized. + :type location: str + :param instance_id: The instanceId GUID of a restorable database account. + :type instance_id: str + :param restore_location: The location where the restorable resources are located. + :type restore_location: str + :param restore_timestamp_in_utc: The timestamp when the restorable resources existed. + :type restore_timestamp_in_utc: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RestorableSqlResourcesListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.cosmosdb.models.RestorableSqlResourcesListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestorableSqlResourcesListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'location': self._serialize.url("location", location, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + if restore_location is not None: + query_parameters['restoreLocation'] = self._serialize.query("restore_location", restore_location, 'str') + if restore_timestamp_in_utc is not None: + query_parameters['restoreTimestampInUtc'] = self._serialize.query("restore_timestamp_in_utc", restore_timestamp_in_utc, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('RestorableSqlResourcesListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts/{instanceId}/restorableSqlResources'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_service_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_service_operations.py new file mode 100644 index 000000000000..9ccd210519b6 --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_service_operations.py @@ -0,0 +1,428 @@ +# 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 typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar, Union +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +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.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling + +from ... import models as _models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class ServiceOperations: + """ServiceOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.cosmosdb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + resource_group_name: str, + account_name: str, + **kwargs + ) -> AsyncIterable["_models.ServiceResourceListResult"]: + """Gets the status of service. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ServiceResourceListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.cosmosdb.models.ServiceResourceListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServiceResourceListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('ServiceResourceListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/services'} # type: ignore + + async def _create_initial( + self, + resource_group_name: str, + account_name: str, + service_name: str, + create_update_parameters: "_models.ServiceResource", + **kwargs + ) -> Optional["_models.ServiceResource"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.ServiceResource"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + 'serviceName': self._serialize.url("service_name", service_name, 'str', max_length=50, min_length=3), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(create_update_parameters, 'ServiceResource') + 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 [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ServiceResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/services/{serviceName}'} # type: ignore + + async def begin_create( + self, + resource_group_name: str, + account_name: str, + service_name: str, + create_update_parameters: "_models.ServiceResource", + **kwargs + ) -> AsyncLROPoller["_models.ServiceResource"]: + """Creates a service. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :param service_name: Cosmos DB service name. + :type service_name: str + :param create_update_parameters: The Service resource parameters. + :type create_update_parameters: ~azure.mgmt.cosmosdb.models.ServiceResource + :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: Pass in True if you'd like the AsyncARMPolling 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 ServiceResource or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.cosmosdb.models.ServiceResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServiceResource"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._create_initial( + resource_group_name=resource_group_name, + account_name=account_name, + service_name=service_name, + create_update_parameters=create_update_parameters, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('ServiceResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + 'serviceName': self._serialize.url("service_name", service_name, 'str', max_length=50, min_length=3), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_create.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/services/{serviceName}'} # type: ignore + + async def get( + self, + resource_group_name: str, + account_name: str, + service_name: str, + **kwargs + ) -> "_models.ServiceResource": + """Gets the status of service. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :param service_name: Cosmos DB service name. + :type service_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ServiceResource, or the result of cls(response) + :rtype: ~azure.mgmt.cosmosdb.models.ServiceResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServiceResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + 'serviceName': self._serialize.url("service_name", service_name, 'str', max_length=50, min_length=3), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ServiceResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/services/{serviceName}'} # type: ignore + + async def _delete_initial( + self, + resource_group_name: str, + account_name: str, + service_name: str, + **kwargs + ) -> None: + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self._delete_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + 'serviceName': self._serialize.url("service_name", service_name, 'str', max_length=50, min_length=3), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200, 202, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/services/{serviceName}'} # type: ignore + + async def begin_delete( + self, + resource_group_name: str, + account_name: str, + service_name: str, + **kwargs + ) -> AsyncLROPoller[None]: + """Deletes service with the given serviceName. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :param service_name: Cosmos DB service name. + :type service_name: str + :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: Pass in True if you'd like the AsyncARMPolling 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 None or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[None] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._delete_initial( + resource_group_name=resource_group_name, + account_name=account_name, + service_name=service_name, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + if cls: + return cls(pipeline_response, None, {}) + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + 'serviceName': self._serialize.url("service_name", service_name, 'str', max_length=50, min_length=3), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/services/{serviceName}'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_sql_resources_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_sql_resources_operations.py index 9aec1dc7a030..f7bc9c5fd345 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_sql_resources_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_sql_resources_operations.py @@ -65,7 +65,7 @@ def list_sql_databases( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -143,7 +143,7 @@ async def get_sql_database( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -193,7 +193,7 @@ async def _create_update_sql_database_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -258,8 +258,8 @@ async def begin_create_update_sql_database( :type create_update_sql_database_parameters: ~azure.mgmt.cosmosdb.models.SqlDatabaseCreateUpdateParameters :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 AsyncARMPolling 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 SqlDatabaseGetResults or the result of cls(response) @@ -326,7 +326,7 @@ async def _delete_sql_database_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_sql_database_initial.metadata['url'] # type: ignore @@ -375,8 +375,8 @@ async def begin_delete_sql_database( :type database_name: str :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 AsyncARMPolling 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 None or the result of cls(response) @@ -453,7 +453,7 @@ async def get_sql_database_throughput( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -503,7 +503,7 @@ async def _update_sql_database_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -568,8 +568,8 @@ async def begin_update_sql_database_throughput( :type update_throughput_parameters: ~azure.mgmt.cosmosdb.models.ThroughputSettingsUpdateParameters :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -636,7 +636,7 @@ async def _migrate_sql_database_to_autoscale_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -663,8 +663,7 @@ async def _migrate_sql_database_to_autoscale_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -693,8 +692,8 @@ async def begin_migrate_sql_database_to_autoscale( :type database_name: str :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -760,7 +759,7 @@ async def _migrate_sql_database_to_manual_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -787,8 +786,7 @@ async def _migrate_sql_database_to_manual_throughput_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -817,8 +815,8 @@ async def begin_migrate_sql_database_to_manual_throughput( :type database_name: str :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -897,7 +895,7 @@ def list_sql_containers( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -978,7 +976,7 @@ async def get_sql_container( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1030,7 +1028,7 @@ async def _create_update_sql_container_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -1099,8 +1097,8 @@ async def begin_create_update_sql_container( :type create_update_sql_container_parameters: ~azure.mgmt.cosmosdb.models.SqlContainerCreateUpdateParameters :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 AsyncARMPolling 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 SqlContainerGetResults or the result of cls(response) @@ -1170,7 +1168,7 @@ async def _delete_sql_container_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_sql_container_initial.metadata['url'] # type: ignore @@ -1223,8 +1221,8 @@ async def begin_delete_sql_container( :type container_name: str :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 AsyncARMPolling 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 None or the result of cls(response) @@ -1306,7 +1304,7 @@ async def get_sql_container_throughput( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1358,7 +1356,7 @@ async def _update_sql_container_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -1427,8 +1425,8 @@ async def begin_update_sql_container_throughput( :type update_throughput_parameters: ~azure.mgmt.cosmosdb.models.ThroughputSettingsUpdateParameters :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -1498,7 +1496,7 @@ async def _migrate_sql_container_to_autoscale_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1526,8 +1524,7 @@ async def _migrate_sql_container_to_autoscale_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -1559,8 +1556,8 @@ async def begin_migrate_sql_container_to_autoscale( :type container_name: str :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -1629,7 +1626,7 @@ async def _migrate_sql_container_to_manual_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1657,8 +1654,7 @@ async def _migrate_sql_container_to_manual_throughput_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -1690,8 +1686,8 @@ async def begin_migrate_sql_container_to_manual_throughput( :type container_name: str :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -1775,7 +1771,7 @@ def list_sql_stored_procedures( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -1819,9 +1815,8 @@ async def get_next(next_link=None): response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) return pipeline_response @@ -1861,7 +1856,7 @@ async def get_sql_stored_procedure( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1915,7 +1910,7 @@ async def _create_update_sql_stored_procedure_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -1988,8 +1983,8 @@ async def begin_create_update_sql_stored_procedure( :type create_update_sql_stored_procedure_parameters: ~azure.mgmt.cosmosdb.models.SqlStoredProcedureCreateUpdateParameters :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 AsyncARMPolling 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 SqlStoredProcedureGetResults or the result of cls(response) @@ -2062,7 +2057,7 @@ async def _delete_sql_stored_procedure_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_sql_stored_procedure_initial.metadata['url'] # type: ignore @@ -2119,8 +2114,8 @@ async def begin_delete_sql_stored_procedure( :type stored_procedure_name: str :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 AsyncARMPolling 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 None or the result of cls(response) @@ -2203,7 +2198,7 @@ def list_sql_user_defined_functions( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -2288,7 +2283,7 @@ async def get_sql_user_defined_function( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -2342,7 +2337,7 @@ async def _create_update_sql_user_defined_function_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -2415,8 +2410,8 @@ async def begin_create_update_sql_user_defined_function( :type create_update_sql_user_defined_function_parameters: ~azure.mgmt.cosmosdb.models.SqlUserDefinedFunctionCreateUpdateParameters :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 AsyncARMPolling 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 SqlUserDefinedFunctionGetResults or the result of cls(response) @@ -2489,7 +2484,7 @@ async def _delete_sql_user_defined_function_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_sql_user_defined_function_initial.metadata['url'] # type: ignore @@ -2546,8 +2541,8 @@ async def begin_delete_sql_user_defined_function( :type user_defined_function_name: str :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 AsyncARMPolling 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 None or the result of cls(response) @@ -2630,7 +2625,7 @@ def list_sql_triggers( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -2715,7 +2710,7 @@ async def get_sql_trigger( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -2769,7 +2764,7 @@ async def _create_update_sql_trigger_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -2842,8 +2837,8 @@ async def begin_create_update_sql_trigger( :type create_update_sql_trigger_parameters: ~azure.mgmt.cosmosdb.models.SqlTriggerCreateUpdateParameters :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 AsyncARMPolling 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 SqlTriggerGetResults or the result of cls(response) @@ -2916,7 +2911,7 @@ async def _delete_sql_trigger_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_sql_trigger_initial.metadata['url'] # type: ignore @@ -2973,8 +2968,8 @@ async def begin_delete_sql_trigger( :type trigger_name: str :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 AsyncARMPolling 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 None or the result of cls(response) @@ -3028,3 +3023,913 @@ def get_long_running_output(pipeline_response): else: return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) begin_delete_sql_trigger.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/triggers/{triggerName}'} # type: ignore + + async def _retrieve_continuous_backup_information_initial( + self, + resource_group_name: str, + account_name: str, + database_name: str, + container_name: str, + location: "_models.ContinuousBackupRestoreLocation", + **kwargs + ) -> Optional["_models.BackupInformation"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.BackupInformation"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._retrieve_continuous_backup_information_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + 'databaseName': self._serialize.url("database_name", database_name, 'str'), + 'containerName': self._serialize.url("container_name", container_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(location, 'ContinuousBackupRestoreLocation') + 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 [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('BackupInformation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _retrieve_continuous_backup_information_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/retrieveContinuousBackupInformation'} # type: ignore + + async def begin_retrieve_continuous_backup_information( + self, + resource_group_name: str, + account_name: str, + database_name: str, + container_name: str, + location: "_models.ContinuousBackupRestoreLocation", + **kwargs + ) -> AsyncLROPoller["_models.BackupInformation"]: + """Retrieves continuous backup information for a container resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :param database_name: Cosmos DB database name. + :type database_name: str + :param container_name: Cosmos DB container name. + :type container_name: str + :param location: The name of the continuous backup restore location. + :type location: ~azure.mgmt.cosmosdb.models.ContinuousBackupRestoreLocation + :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: Pass in True if you'd like the AsyncARMPolling 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 BackupInformation or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.cosmosdb.models.BackupInformation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupInformation"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._retrieve_continuous_backup_information_initial( + resource_group_name=resource_group_name, + account_name=account_name, + database_name=database_name, + container_name=container_name, + location=location, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('BackupInformation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + 'databaseName': self._serialize.url("database_name", database_name, 'str'), + 'containerName': self._serialize.url("container_name", container_name, 'str'), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_retrieve_continuous_backup_information.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/retrieveContinuousBackupInformation'} # type: ignore + + async def get_sql_role_definition( + self, + role_definition_id: str, + resource_group_name: str, + account_name: str, + **kwargs + ) -> "_models.SqlRoleDefinitionGetResults": + """Retrieves the properties of an existing Azure Cosmos DB SQL Role Definition with the given Id. + + :param role_definition_id: The GUID for the Role Definition. + :type role_definition_id: str + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SqlRoleDefinitionGetResults, or the result of cls(response) + :rtype: ~azure.mgmt.cosmosdb.models.SqlRoleDefinitionGetResults + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SqlRoleDefinitionGetResults"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self.get_sql_role_definition.metadata['url'] # type: ignore + path_format_arguments = { + 'roleDefinitionId': self._serialize.url("role_definition_id", role_definition_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SqlRoleDefinitionGetResults', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_sql_role_definition.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleDefinitions/{roleDefinitionId}'} # type: ignore + + async def _create_update_sql_role_definition_initial( + self, + role_definition_id: str, + resource_group_name: str, + account_name: str, + create_update_sql_role_definition_parameters: "_models.SqlRoleDefinitionCreateUpdateParameters", + **kwargs + ) -> Optional["_models.SqlRoleDefinitionGetResults"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.SqlRoleDefinitionGetResults"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_update_sql_role_definition_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'roleDefinitionId': self._serialize.url("role_definition_id", role_definition_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(create_update_sql_role_definition_parameters, 'SqlRoleDefinitionCreateUpdateParameters') + 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 [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('SqlRoleDefinitionGetResults', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_update_sql_role_definition_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleDefinitions/{roleDefinitionId}'} # type: ignore + + async def begin_create_update_sql_role_definition( + self, + role_definition_id: str, + resource_group_name: str, + account_name: str, + create_update_sql_role_definition_parameters: "_models.SqlRoleDefinitionCreateUpdateParameters", + **kwargs + ) -> AsyncLROPoller["_models.SqlRoleDefinitionGetResults"]: + """Creates or updates an Azure Cosmos DB SQL Role Definition. + + :param role_definition_id: The GUID for the Role Definition. + :type role_definition_id: str + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :param create_update_sql_role_definition_parameters: The properties required to create or + update a Role Definition. + :type create_update_sql_role_definition_parameters: ~azure.mgmt.cosmosdb.models.SqlRoleDefinitionCreateUpdateParameters + :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: Pass in True if you'd like the AsyncARMPolling 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 SqlRoleDefinitionGetResults or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.cosmosdb.models.SqlRoleDefinitionGetResults] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.SqlRoleDefinitionGetResults"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._create_update_sql_role_definition_initial( + role_definition_id=role_definition_id, + resource_group_name=resource_group_name, + account_name=account_name, + create_update_sql_role_definition_parameters=create_update_sql_role_definition_parameters, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('SqlRoleDefinitionGetResults', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'roleDefinitionId': self._serialize.url("role_definition_id", role_definition_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_create_update_sql_role_definition.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleDefinitions/{roleDefinitionId}'} # type: ignore + + async def _delete_sql_role_definition_initial( + self, + role_definition_id: str, + resource_group_name: str, + account_name: str, + **kwargs + ) -> None: + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self._delete_sql_role_definition_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'roleDefinitionId': self._serialize.url("role_definition_id", role_definition_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200, 202, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_sql_role_definition_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleDefinitions/{roleDefinitionId}'} # type: ignore + + async def begin_delete_sql_role_definition( + self, + role_definition_id: str, + resource_group_name: str, + account_name: str, + **kwargs + ) -> AsyncLROPoller[None]: + """Deletes an existing Azure Cosmos DB SQL Role Definition. + + :param role_definition_id: The GUID for the Role Definition. + :type role_definition_id: str + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :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: Pass in True if you'd like the AsyncARMPolling 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 None or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[None] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._delete_sql_role_definition_initial( + role_definition_id=role_definition_id, + resource_group_name=resource_group_name, + account_name=account_name, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + if cls: + return cls(pipeline_response, None, {}) + + path_format_arguments = { + 'roleDefinitionId': self._serialize.url("role_definition_id", role_definition_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_delete_sql_role_definition.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleDefinitions/{roleDefinitionId}'} # type: ignore + + def list_sql_role_definitions( + self, + resource_group_name: str, + account_name: str, + **kwargs + ) -> AsyncIterable["_models.SqlRoleDefinitionListResult"]: + """Retrieves the list of all Azure Cosmos DB SQL Role Definitions. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SqlRoleDefinitionListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.cosmosdb.models.SqlRoleDefinitionListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SqlRoleDefinitionListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list_sql_role_definitions.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('SqlRoleDefinitionListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_sql_role_definitions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleDefinitions'} # type: ignore + + async def get_sql_role_assignment( + self, + role_assignment_id: str, + resource_group_name: str, + account_name: str, + **kwargs + ) -> "_models.SqlRoleAssignmentGetResults": + """Retrieves the properties of an existing Azure Cosmos DB SQL Role Assignment with the given Id. + + :param role_assignment_id: The GUID for the Role Assignment. + :type role_assignment_id: str + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SqlRoleAssignmentGetResults, or the result of cls(response) + :rtype: ~azure.mgmt.cosmosdb.models.SqlRoleAssignmentGetResults + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SqlRoleAssignmentGetResults"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self.get_sql_role_assignment.metadata['url'] # type: ignore + path_format_arguments = { + 'roleAssignmentId': self._serialize.url("role_assignment_id", role_assignment_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SqlRoleAssignmentGetResults', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_sql_role_assignment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleAssignments/{roleAssignmentId}'} # type: ignore + + async def _create_update_sql_role_assignment_initial( + self, + role_assignment_id: str, + resource_group_name: str, + account_name: str, + create_update_sql_role_assignment_parameters: "_models.SqlRoleAssignmentCreateUpdateParameters", + **kwargs + ) -> Optional["_models.SqlRoleAssignmentGetResults"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.SqlRoleAssignmentGetResults"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_update_sql_role_assignment_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'roleAssignmentId': self._serialize.url("role_assignment_id", role_assignment_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(create_update_sql_role_assignment_parameters, 'SqlRoleAssignmentCreateUpdateParameters') + 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 [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('SqlRoleAssignmentGetResults', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_update_sql_role_assignment_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleAssignments/{roleAssignmentId}'} # type: ignore + + async def begin_create_update_sql_role_assignment( + self, + role_assignment_id: str, + resource_group_name: str, + account_name: str, + create_update_sql_role_assignment_parameters: "_models.SqlRoleAssignmentCreateUpdateParameters", + **kwargs + ) -> AsyncLROPoller["_models.SqlRoleAssignmentGetResults"]: + """Creates or updates an Azure Cosmos DB SQL Role Assignment. + + :param role_assignment_id: The GUID for the Role Assignment. + :type role_assignment_id: str + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :param create_update_sql_role_assignment_parameters: The properties required to create or + update a Role Assignment. + :type create_update_sql_role_assignment_parameters: ~azure.mgmt.cosmosdb.models.SqlRoleAssignmentCreateUpdateParameters + :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: Pass in True if you'd like the AsyncARMPolling 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 SqlRoleAssignmentGetResults or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.cosmosdb.models.SqlRoleAssignmentGetResults] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.SqlRoleAssignmentGetResults"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._create_update_sql_role_assignment_initial( + role_assignment_id=role_assignment_id, + resource_group_name=resource_group_name, + account_name=account_name, + create_update_sql_role_assignment_parameters=create_update_sql_role_assignment_parameters, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('SqlRoleAssignmentGetResults', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'roleAssignmentId': self._serialize.url("role_assignment_id", role_assignment_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_create_update_sql_role_assignment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleAssignments/{roleAssignmentId}'} # type: ignore + + async def _delete_sql_role_assignment_initial( + self, + role_assignment_id: str, + resource_group_name: str, + account_name: str, + **kwargs + ) -> None: + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self._delete_sql_role_assignment_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'roleAssignmentId': self._serialize.url("role_assignment_id", role_assignment_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200, 202, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_sql_role_assignment_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleAssignments/{roleAssignmentId}'} # type: ignore + + async def begin_delete_sql_role_assignment( + self, + role_assignment_id: str, + resource_group_name: str, + account_name: str, + **kwargs + ) -> AsyncLROPoller[None]: + """Deletes an existing Azure Cosmos DB SQL Role Assignment. + + :param role_assignment_id: The GUID for the Role Assignment. + :type role_assignment_id: str + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :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: Pass in True if you'd like the AsyncARMPolling 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 None or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[None] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._delete_sql_role_assignment_initial( + role_assignment_id=role_assignment_id, + resource_group_name=resource_group_name, + account_name=account_name, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + if cls: + return cls(pipeline_response, None, {}) + + path_format_arguments = { + 'roleAssignmentId': self._serialize.url("role_assignment_id", role_assignment_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + + if polling is True: polling_method = AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_delete_sql_role_assignment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleAssignments/{roleAssignmentId}'} # type: ignore + + def list_sql_role_assignments( + self, + resource_group_name: str, + account_name: str, + **kwargs + ) -> AsyncIterable["_models.SqlRoleAssignmentListResult"]: + """Retrieves the list of all Azure Cosmos DB SQL Role Assignments. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SqlRoleAssignmentListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.cosmosdb.models.SqlRoleAssignmentListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SqlRoleAssignmentListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list_sql_role_assignments.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('SqlRoleAssignmentListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_sql_role_assignments.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleAssignments'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_table_resources_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_table_resources_operations.py index 3038406aee4d..e47f3831b4f2 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_table_resources_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/aio/operations/_table_resources_operations.py @@ -65,7 +65,7 @@ def list_tables( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -142,7 +142,7 @@ async def get_table( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -192,7 +192,7 @@ async def _create_update_table_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -256,8 +256,8 @@ async def begin_create_update_table( :type create_update_table_parameters: ~azure.mgmt.cosmosdb.models.TableCreateUpdateParameters :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 AsyncARMPolling 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 TableGetResults or the result of cls(response) @@ -324,7 +324,7 @@ async def _delete_table_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_table_initial.metadata['url'] # type: ignore @@ -373,8 +373,8 @@ async def begin_delete_table( :type table_name: str :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 AsyncARMPolling 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 None or the result of cls(response) @@ -451,7 +451,7 @@ async def get_table_throughput( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -501,7 +501,7 @@ async def _update_table_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -566,8 +566,8 @@ async def begin_update_table_throughput( :type update_throughput_parameters: ~azure.mgmt.cosmosdb.models.ThroughputSettingsUpdateParameters :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -634,7 +634,7 @@ async def _migrate_table_to_autoscale_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -661,8 +661,7 @@ async def _migrate_table_to_autoscale_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -691,8 +690,8 @@ async def begin_migrate_table_to_autoscale( :type table_name: str :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -758,7 +757,7 @@ async def _migrate_table_to_manual_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -785,8 +784,7 @@ async def _migrate_table_to_manual_throughput_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -815,8 +813,8 @@ async def begin_migrate_table_to_manual_throughput( :type table_name: str :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 AsyncARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/models/__init__.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/models/__init__.py index 81e37edc6ba9..a4f6d74ec0db 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/models/__init__.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/models/__init__.py @@ -13,7 +13,10 @@ from ._models_py3 import AutoUpgradePolicyResource from ._models_py3 import AutoscaleSettings from ._models_py3 import AutoscaleSettingsResource + from ._models_py3 import BackupInformation from ._models_py3 import BackupPolicy + from ._models_py3 import BackupResource + from ._models_py3 import BackupResourceProperties from ._models_py3 import Capability from ._models_py3 import CassandraKeyspaceCreateUpdateParameters from ._models_py3 import CassandraKeyspaceGetPropertiesOptions @@ -29,18 +32,31 @@ from ._models_py3 import CassandraTableGetResults from ._models_py3 import CassandraTableListResult from ._models_py3 import CassandraTableResource + from ._models_py3 import Certificate from ._models_py3 import ClusterKey + from ._models_py3 import ClusterNodeStatus + from ._models_py3 import ClusterNodeStatusNodesItem + from ._models_py3 import ClusterResource + from ._models_py3 import ClusterResourceProperties from ._models_py3 import Column from ._models_py3 import Components1Jq1T4ISchemasManagedserviceidentityPropertiesUserassignedidentitiesAdditionalproperties from ._models_py3 import CompositePath from ._models_py3 import ConflictResolutionPolicy from ._models_py3 import ConsistencyPolicy from ._models_py3 import ContainerPartitionKey + from ._models_py3 import ContinuousBackupInformation + from ._models_py3 import ContinuousBackupRestoreLocation from ._models_py3 import ContinuousModeBackupPolicy from ._models_py3 import CorsPolicy from ._models_py3 import CreateUpdateOptions + from ._models_py3 import DataCenterResource + from ._models_py3 import DataCenterResourceProperties + from ._models_py3 import DataTransferRegionalServiceResource + from ._models_py3 import DataTransferServiceResource + from ._models_py3 import DataTransferServiceResourceProperties from ._models_py3 import DatabaseAccountConnectionString from ._models_py3 import DatabaseAccountCreateUpdateParameters + from ._models_py3 import DatabaseAccountCreateUpdateProperties from ._models_py3 import DatabaseAccountGetResults from ._models_py3 import DatabaseAccountListConnectionStringsResult from ._models_py3 import DatabaseAccountListKeysResult @@ -48,10 +64,9 @@ from ._models_py3 import DatabaseAccountRegenerateKeyParameters from ._models_py3 import DatabaseAccountUpdateParameters from ._models_py3 import DatabaseAccountsListResult - from ._models_py3 import ErrorAdditionalInfo + from ._models_py3 import DatabaseRestoreResource + from ._models_py3 import DefaultRequestDatabaseAccountCreateUpdateProperties from ._models_py3 import ErrorResponse - from ._models_py3 import ErrorResponseAutoGenerated - from ._models_py3 import ErrorResponseUpdatedFormat from ._models_py3 import ExcludedPath from ._models_py3 import ExtendedResourceProperties from ._models_py3 import FailoverPolicies @@ -72,7 +87,13 @@ from ._models_py3 import Indexes from ._models_py3 import IndexingPolicy from ._models_py3 import IpAddressOrRange + from ._models_py3 import ListBackups + from ._models_py3 import ListClusters + from ._models_py3 import ListDataCenters from ._models_py3 import Location + from ._models_py3 import LocationGetResult + from ._models_py3 import LocationListResult + from ._models_py3 import LocationProperties from ._models_py3 import ManagedServiceIdentity from ._models_py3 import Metric from ._models_py3 import MetricAvailability @@ -113,6 +134,7 @@ from ._models_py3 import PercentileMetricValue from ._models_py3 import PeriodicModeBackupPolicy from ._models_py3 import PeriodicModeProperties + from ._models_py3 import Permission from ._models_py3 import PrivateEndpointConnection from ._models_py3 import PrivateEndpointConnectionListResult from ._models_py3 import PrivateEndpointProperty @@ -121,7 +143,34 @@ from ._models_py3 import PrivateLinkServiceConnectionStateProperty from ._models_py3 import ProxyResource from ._models_py3 import RegionForOnlineOffline + from ._models_py3 import RegionalServiceResource + from ._models_py3 import RepairPostBody from ._models_py3 import Resource + from ._models_py3 import RestorableDatabaseAccountGetResult + from ._models_py3 import RestorableDatabaseAccountsListResult + from ._models_py3 import RestorableLocationResource + from ._models_py3 import RestorableMongodbCollectionGetResult + from ._models_py3 import RestorableMongodbCollectionPropertiesResource + from ._models_py3 import RestorableMongodbCollectionsListResult + from ._models_py3 import RestorableMongodbDatabaseGetResult + from ._models_py3 import RestorableMongodbDatabasePropertiesResource + from ._models_py3 import RestorableMongodbDatabasesListResult + from ._models_py3 import RestorableMongodbResourcesListResult + from ._models_py3 import RestorableSqlContainerGetResult + from ._models_py3 import RestorableSqlContainerPropertiesResource + from ._models_py3 import RestorableSqlContainerPropertiesResourceContainer + from ._models_py3 import RestorableSqlContainersListResult + from ._models_py3 import RestorableSqlDatabaseGetResult + from ._models_py3 import RestorableSqlDatabasePropertiesResource + from ._models_py3 import RestorableSqlDatabasePropertiesResourceDatabase + from ._models_py3 import RestorableSqlDatabasesListResult + from ._models_py3 import RestorableSqlResourcesListResult + from ._models_py3 import RestoreParameters + from ._models_py3 import RestoreReqeustDatabaseAccountCreateUpdateProperties + from ._models_py3 import SeedNode + from ._models_py3 import ServiceResource + from ._models_py3 import ServiceResourceListResult + from ._models_py3 import ServiceResourceProperties from ._models_py3 import SpatialSpec from ._models_py3 import SqlContainerCreateUpdateParameters from ._models_py3 import SqlContainerGetPropertiesOptions @@ -135,6 +184,15 @@ from ._models_py3 import SqlDatabaseGetResults from ._models_py3 import SqlDatabaseListResult from ._models_py3 import SqlDatabaseResource + from ._models_py3 import SqlDedicatedGatewayRegionalServiceResource + from ._models_py3 import SqlDedicatedGatewayServiceResource + from ._models_py3 import SqlDedicatedGatewayServiceResourceProperties + from ._models_py3 import SqlRoleAssignmentCreateUpdateParameters + from ._models_py3 import SqlRoleAssignmentGetResults + from ._models_py3 import SqlRoleAssignmentListResult + from ._models_py3 import SqlRoleDefinitionCreateUpdateParameters + from ._models_py3 import SqlRoleDefinitionGetResults + from ._models_py3 import SqlRoleDefinitionListResult from ._models_py3 import SqlStoredProcedureCreateUpdateParameters from ._models_py3 import SqlStoredProcedureGetPropertiesResource from ._models_py3 import SqlStoredProcedureGetResults @@ -150,6 +208,7 @@ from ._models_py3 import SqlUserDefinedFunctionGetResults from ._models_py3 import SqlUserDefinedFunctionListResult from ._models_py3 import SqlUserDefinedFunctionResource + from ._models_py3 import SystemData from ._models_py3 import TableCreateUpdateParameters from ._models_py3 import TableGetPropertiesOptions from ._models_py3 import TableGetPropertiesResource @@ -173,7 +232,10 @@ from ._models import AutoUpgradePolicyResource # type: ignore from ._models import AutoscaleSettings # type: ignore from ._models import AutoscaleSettingsResource # type: ignore + from ._models import BackupInformation # type: ignore from ._models import BackupPolicy # type: ignore + from ._models import BackupResource # type: ignore + from ._models import BackupResourceProperties # type: ignore from ._models import Capability # type: ignore from ._models import CassandraKeyspaceCreateUpdateParameters # type: ignore from ._models import CassandraKeyspaceGetPropertiesOptions # type: ignore @@ -189,18 +251,31 @@ from ._models import CassandraTableGetResults # type: ignore from ._models import CassandraTableListResult # type: ignore from ._models import CassandraTableResource # type: ignore + from ._models import Certificate # type: ignore from ._models import ClusterKey # type: ignore + from ._models import ClusterNodeStatus # type: ignore + from ._models import ClusterNodeStatusNodesItem # type: ignore + from ._models import ClusterResource # type: ignore + from ._models import ClusterResourceProperties # type: ignore from ._models import Column # type: ignore from ._models import Components1Jq1T4ISchemasManagedserviceidentityPropertiesUserassignedidentitiesAdditionalproperties # type: ignore from ._models import CompositePath # type: ignore from ._models import ConflictResolutionPolicy # type: ignore from ._models import ConsistencyPolicy # type: ignore from ._models import ContainerPartitionKey # type: ignore + from ._models import ContinuousBackupInformation # type: ignore + from ._models import ContinuousBackupRestoreLocation # type: ignore from ._models import ContinuousModeBackupPolicy # type: ignore from ._models import CorsPolicy # type: ignore from ._models import CreateUpdateOptions # type: ignore + from ._models import DataCenterResource # type: ignore + from ._models import DataCenterResourceProperties # type: ignore + from ._models import DataTransferRegionalServiceResource # type: ignore + from ._models import DataTransferServiceResource # type: ignore + from ._models import DataTransferServiceResourceProperties # type: ignore from ._models import DatabaseAccountConnectionString # type: ignore from ._models import DatabaseAccountCreateUpdateParameters # type: ignore + from ._models import DatabaseAccountCreateUpdateProperties # type: ignore from ._models import DatabaseAccountGetResults # type: ignore from ._models import DatabaseAccountListConnectionStringsResult # type: ignore from ._models import DatabaseAccountListKeysResult # type: ignore @@ -208,10 +283,9 @@ from ._models import DatabaseAccountRegenerateKeyParameters # type: ignore from ._models import DatabaseAccountUpdateParameters # type: ignore from ._models import DatabaseAccountsListResult # type: ignore - from ._models import ErrorAdditionalInfo # type: ignore + from ._models import DatabaseRestoreResource # type: ignore + from ._models import DefaultRequestDatabaseAccountCreateUpdateProperties # type: ignore from ._models import ErrorResponse # type: ignore - from ._models import ErrorResponseAutoGenerated # type: ignore - from ._models import ErrorResponseUpdatedFormat # type: ignore from ._models import ExcludedPath # type: ignore from ._models import ExtendedResourceProperties # type: ignore from ._models import FailoverPolicies # type: ignore @@ -232,7 +306,13 @@ from ._models import Indexes # type: ignore from ._models import IndexingPolicy # type: ignore from ._models import IpAddressOrRange # type: ignore + from ._models import ListBackups # type: ignore + from ._models import ListClusters # type: ignore + from ._models import ListDataCenters # type: ignore from ._models import Location # type: ignore + from ._models import LocationGetResult # type: ignore + from ._models import LocationListResult # type: ignore + from ._models import LocationProperties # type: ignore from ._models import ManagedServiceIdentity # type: ignore from ._models import Metric # type: ignore from ._models import MetricAvailability # type: ignore @@ -273,6 +353,7 @@ from ._models import PercentileMetricValue # type: ignore from ._models import PeriodicModeBackupPolicy # type: ignore from ._models import PeriodicModeProperties # type: ignore + from ._models import Permission # type: ignore from ._models import PrivateEndpointConnection # type: ignore from ._models import PrivateEndpointConnectionListResult # type: ignore from ._models import PrivateEndpointProperty # type: ignore @@ -281,7 +362,34 @@ from ._models import PrivateLinkServiceConnectionStateProperty # type: ignore from ._models import ProxyResource # type: ignore from ._models import RegionForOnlineOffline # type: ignore + from ._models import RegionalServiceResource # type: ignore + from ._models import RepairPostBody # type: ignore from ._models import Resource # type: ignore + from ._models import RestorableDatabaseAccountGetResult # type: ignore + from ._models import RestorableDatabaseAccountsListResult # type: ignore + from ._models import RestorableLocationResource # type: ignore + from ._models import RestorableMongodbCollectionGetResult # type: ignore + from ._models import RestorableMongodbCollectionPropertiesResource # type: ignore + from ._models import RestorableMongodbCollectionsListResult # type: ignore + from ._models import RestorableMongodbDatabaseGetResult # type: ignore + from ._models import RestorableMongodbDatabasePropertiesResource # type: ignore + from ._models import RestorableMongodbDatabasesListResult # type: ignore + from ._models import RestorableMongodbResourcesListResult # type: ignore + from ._models import RestorableSqlContainerGetResult # type: ignore + from ._models import RestorableSqlContainerPropertiesResource # type: ignore + from ._models import RestorableSqlContainerPropertiesResourceContainer # type: ignore + from ._models import RestorableSqlContainersListResult # type: ignore + from ._models import RestorableSqlDatabaseGetResult # type: ignore + from ._models import RestorableSqlDatabasePropertiesResource # type: ignore + from ._models import RestorableSqlDatabasePropertiesResourceDatabase # type: ignore + from ._models import RestorableSqlDatabasesListResult # type: ignore + from ._models import RestorableSqlResourcesListResult # type: ignore + from ._models import RestoreParameters # type: ignore + from ._models import RestoreReqeustDatabaseAccountCreateUpdateProperties # type: ignore + from ._models import SeedNode # type: ignore + from ._models import ServiceResource # type: ignore + from ._models import ServiceResourceListResult # type: ignore + from ._models import ServiceResourceProperties # type: ignore from ._models import SpatialSpec # type: ignore from ._models import SqlContainerCreateUpdateParameters # type: ignore from ._models import SqlContainerGetPropertiesOptions # type: ignore @@ -295,6 +403,15 @@ from ._models import SqlDatabaseGetResults # type: ignore from ._models import SqlDatabaseListResult # type: ignore from ._models import SqlDatabaseResource # type: ignore + from ._models import SqlDedicatedGatewayRegionalServiceResource # type: ignore + from ._models import SqlDedicatedGatewayServiceResource # type: ignore + from ._models import SqlDedicatedGatewayServiceResourceProperties # type: ignore + from ._models import SqlRoleAssignmentCreateUpdateParameters # type: ignore + from ._models import SqlRoleAssignmentGetResults # type: ignore + from ._models import SqlRoleAssignmentListResult # type: ignore + from ._models import SqlRoleDefinitionCreateUpdateParameters # type: ignore + from ._models import SqlRoleDefinitionGetResults # type: ignore + from ._models import SqlRoleDefinitionListResult # type: ignore from ._models import SqlStoredProcedureCreateUpdateParameters # type: ignore from ._models import SqlStoredProcedureGetPropertiesResource # type: ignore from ._models import SqlStoredProcedureGetResults # type: ignore @@ -310,6 +427,7 @@ from ._models import SqlUserDefinedFunctionGetResults # type: ignore from ._models import SqlUserDefinedFunctionListResult # type: ignore from ._models import SqlUserDefinedFunctionResource # type: ignore + from ._models import SystemData # type: ignore from ._models import TableCreateUpdateParameters # type: ignore from ._models import TableGetPropertiesOptions # type: ignore from ._models import TableGetPropertiesResource # type: ignore @@ -328,23 +446,37 @@ from ._models import VirtualNetworkRule # type: ignore from ._cosmos_db_management_client_enums import ( + ApiType, + AuthenticationMethod, BackupPolicyType, + BackupStorageRedundancy, CompositePathSortOrder, ConflictResolutionMode, ConnectorOffer, + CreateMode, + CreatedByType, DataType, DatabaseAccountKind, DefaultConsistencyLevel, IndexKind, IndexingMode, KeyKind, + ManagedCassandraProvisioningState, NetworkAclBypass, + NodeState, + NodeStatus, NotebookWorkspaceName, + OperationType, PartitionKind, PrimaryAggregationType, PublicNetworkAccess, ResourceIdentityType, + RestoreMode, + RoleDefinitionType, ServerVersion, + ServiceSize, + ServiceStatus, + ServiceType, SpatialType, TriggerOperation, TriggerType, @@ -358,7 +490,10 @@ 'AutoUpgradePolicyResource', 'AutoscaleSettings', 'AutoscaleSettingsResource', + 'BackupInformation', 'BackupPolicy', + 'BackupResource', + 'BackupResourceProperties', 'Capability', 'CassandraKeyspaceCreateUpdateParameters', 'CassandraKeyspaceGetPropertiesOptions', @@ -374,18 +509,31 @@ 'CassandraTableGetResults', 'CassandraTableListResult', 'CassandraTableResource', + 'Certificate', 'ClusterKey', + 'ClusterNodeStatus', + 'ClusterNodeStatusNodesItem', + 'ClusterResource', + 'ClusterResourceProperties', 'Column', 'Components1Jq1T4ISchemasManagedserviceidentityPropertiesUserassignedidentitiesAdditionalproperties', 'CompositePath', 'ConflictResolutionPolicy', 'ConsistencyPolicy', 'ContainerPartitionKey', + 'ContinuousBackupInformation', + 'ContinuousBackupRestoreLocation', 'ContinuousModeBackupPolicy', 'CorsPolicy', 'CreateUpdateOptions', + 'DataCenterResource', + 'DataCenterResourceProperties', + 'DataTransferRegionalServiceResource', + 'DataTransferServiceResource', + 'DataTransferServiceResourceProperties', 'DatabaseAccountConnectionString', 'DatabaseAccountCreateUpdateParameters', + 'DatabaseAccountCreateUpdateProperties', 'DatabaseAccountGetResults', 'DatabaseAccountListConnectionStringsResult', 'DatabaseAccountListKeysResult', @@ -393,10 +541,9 @@ 'DatabaseAccountRegenerateKeyParameters', 'DatabaseAccountUpdateParameters', 'DatabaseAccountsListResult', - 'ErrorAdditionalInfo', + 'DatabaseRestoreResource', + 'DefaultRequestDatabaseAccountCreateUpdateProperties', 'ErrorResponse', - 'ErrorResponseAutoGenerated', - 'ErrorResponseUpdatedFormat', 'ExcludedPath', 'ExtendedResourceProperties', 'FailoverPolicies', @@ -417,7 +564,13 @@ 'Indexes', 'IndexingPolicy', 'IpAddressOrRange', + 'ListBackups', + 'ListClusters', + 'ListDataCenters', 'Location', + 'LocationGetResult', + 'LocationListResult', + 'LocationProperties', 'ManagedServiceIdentity', 'Metric', 'MetricAvailability', @@ -458,6 +611,7 @@ 'PercentileMetricValue', 'PeriodicModeBackupPolicy', 'PeriodicModeProperties', + 'Permission', 'PrivateEndpointConnection', 'PrivateEndpointConnectionListResult', 'PrivateEndpointProperty', @@ -466,7 +620,34 @@ 'PrivateLinkServiceConnectionStateProperty', 'ProxyResource', 'RegionForOnlineOffline', + 'RegionalServiceResource', + 'RepairPostBody', 'Resource', + 'RestorableDatabaseAccountGetResult', + 'RestorableDatabaseAccountsListResult', + 'RestorableLocationResource', + 'RestorableMongodbCollectionGetResult', + 'RestorableMongodbCollectionPropertiesResource', + 'RestorableMongodbCollectionsListResult', + 'RestorableMongodbDatabaseGetResult', + 'RestorableMongodbDatabasePropertiesResource', + 'RestorableMongodbDatabasesListResult', + 'RestorableMongodbResourcesListResult', + 'RestorableSqlContainerGetResult', + 'RestorableSqlContainerPropertiesResource', + 'RestorableSqlContainerPropertiesResourceContainer', + 'RestorableSqlContainersListResult', + 'RestorableSqlDatabaseGetResult', + 'RestorableSqlDatabasePropertiesResource', + 'RestorableSqlDatabasePropertiesResourceDatabase', + 'RestorableSqlDatabasesListResult', + 'RestorableSqlResourcesListResult', + 'RestoreParameters', + 'RestoreReqeustDatabaseAccountCreateUpdateProperties', + 'SeedNode', + 'ServiceResource', + 'ServiceResourceListResult', + 'ServiceResourceProperties', 'SpatialSpec', 'SqlContainerCreateUpdateParameters', 'SqlContainerGetPropertiesOptions', @@ -480,6 +661,15 @@ 'SqlDatabaseGetResults', 'SqlDatabaseListResult', 'SqlDatabaseResource', + 'SqlDedicatedGatewayRegionalServiceResource', + 'SqlDedicatedGatewayServiceResource', + 'SqlDedicatedGatewayServiceResourceProperties', + 'SqlRoleAssignmentCreateUpdateParameters', + 'SqlRoleAssignmentGetResults', + 'SqlRoleAssignmentListResult', + 'SqlRoleDefinitionCreateUpdateParameters', + 'SqlRoleDefinitionGetResults', + 'SqlRoleDefinitionListResult', 'SqlStoredProcedureCreateUpdateParameters', 'SqlStoredProcedureGetPropertiesResource', 'SqlStoredProcedureGetResults', @@ -495,6 +685,7 @@ 'SqlUserDefinedFunctionGetResults', 'SqlUserDefinedFunctionListResult', 'SqlUserDefinedFunctionResource', + 'SystemData', 'TableCreateUpdateParameters', 'TableGetPropertiesOptions', 'TableGetPropertiesResource', @@ -511,23 +702,37 @@ 'Usage', 'UsagesResult', 'VirtualNetworkRule', + 'ApiType', + 'AuthenticationMethod', 'BackupPolicyType', + 'BackupStorageRedundancy', 'CompositePathSortOrder', 'ConflictResolutionMode', 'ConnectorOffer', + 'CreateMode', + 'CreatedByType', 'DataType', 'DatabaseAccountKind', 'DefaultConsistencyLevel', 'IndexKind', 'IndexingMode', 'KeyKind', + 'ManagedCassandraProvisioningState', 'NetworkAclBypass', + 'NodeState', + 'NodeStatus', 'NotebookWorkspaceName', + 'OperationType', 'PartitionKind', 'PrimaryAggregationType', 'PublicNetworkAccess', 'ResourceIdentityType', + 'RestoreMode', + 'RoleDefinitionType', 'ServerVersion', + 'ServiceSize', + 'ServiceStatus', + 'ServiceType', 'SpatialType', 'TriggerOperation', 'TriggerType', diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/models/_cosmos_db_management_client_enums.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/models/_cosmos_db_management_client_enums.py index f0b87b1d694d..47d875afc637 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/models/_cosmos_db_management_client_enums.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/models/_cosmos_db_management_client_enums.py @@ -26,6 +26,26 @@ def __getattr__(cls, name): raise AttributeError(name) +class ApiType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Enum to indicate the API type of the restorable database account. + """ + + MONGO_DB = "MongoDB" + GREMLIN = "Gremlin" + CASSANDRA = "Cassandra" + TABLE = "Table" + SQL = "Sql" + GREMLIN_V2 = "GremlinV2" + +class AuthenticationMethod(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Which authentication method Cassandra should use to authenticate clients. 'None' turns off + authentication, so should not be used except in emergencies. 'Cassandra' is the default + password based authentication. The default is 'Cassandra'. + """ + + NONE = "None" + CASSANDRA = "Cassandra" + class BackupPolicyType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Describes the mode of backups. """ @@ -33,6 +53,14 @@ class BackupPolicyType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): PERIODIC = "Periodic" CONTINUOUS = "Continuous" +class BackupStorageRedundancy(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Enum to indicate type of backup storage redundancy. + """ + + GEO = "Geo" + LOCAL = "Local" + ZONE = "Zone" + class CompositePathSortOrder(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Sort order for composite paths. """ @@ -53,6 +81,22 @@ class ConnectorOffer(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): SMALL = "Small" +class CreatedByType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The type of identity that created the resource. + """ + + USER = "User" + APPLICATION = "Application" + MANAGED_IDENTITY = "ManagedIdentity" + KEY = "Key" + +class CreateMode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Enum to indicate the mode of account creation. + """ + + DEFAULT = "Default" + RESTORE = "Restore" + class DatabaseAccountKind(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Indicates the type of database account. This can only be set at database account creation. """ @@ -107,6 +151,17 @@ class KeyKind(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): PRIMARY_READONLY = "primaryReadonly" SECONDARY_READONLY = "secondaryReadonly" +class ManagedCassandraProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The status of the resource at the time the operation was called. + """ + + CREATING = "Creating" + UPDATING = "Updating" + DELETING = "Deleting" + SUCCEEDED = "Succeeded" + FAILED = "Failed" + CANCELED = "Canceled" + class NetworkAclBypass(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Indicates what services are allowed to bypass firewall checks. """ @@ -114,10 +169,36 @@ class NetworkAclBypass(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): NONE = "None" AZURE_SERVICES = "AzureServices" +class NodeState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The state of the node in relation to the cluster. + """ + + NORMAL = "Normal" + LEAVING = "Leaving" + JOINING = "Joining" + MOVING = "Moving" + STOPPED = "Stopped" + +class NodeStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Indicates whether the node is functioning or not. + """ + + UP = "Up" + DOWN = "Down" + class NotebookWorkspaceName(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): DEFAULT = "default" +class OperationType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Enum to indicate the operation type of the event. + """ + + CREATE = "Create" + REPLACE = "Replace" + DELETE = "Delete" + SYSTEM_OPERATION = "SystemOperation" + class PartitionKind(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Indicates the kind of algorithm used for partitioning. For MultiHash, multiple partition keys (upto three maximum) are supported for container create @@ -156,6 +237,19 @@ class ResourceIdentityType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): SYSTEM_ASSIGNED_USER_ASSIGNED = "SystemAssigned,UserAssigned" NONE = "None" +class RestoreMode(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Describes the mode of the restore. + """ + + POINT_IN_TIME = "PointInTime" + +class RoleDefinitionType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Indicates whether the Role Definition was built-in or user created. + """ + + BUILT_IN_ROLE = "BuiltInRole" + CUSTOM_ROLE = "CustomRole" + class ServerVersion(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Describes the ServerVersion of an a MongoDB account. """ @@ -164,6 +258,32 @@ class ServerVersion(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): THREE6 = "3.6" FOUR0 = "4.0" +class ServiceSize(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Instance type for the service. + """ + + COSMOS_D4_S = "Cosmos.D4s" + COSMOS_D8_S = "Cosmos.D8s" + COSMOS_D16_S = "Cosmos.D16s" + +class ServiceStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Describes the status of a service. + """ + + CREATING = "Creating" + RUNNING = "Running" + UPDATING = "Updating" + DELETING = "Deleting" + ERROR = "Error" + STOPPED = "Stopped" + +class ServiceType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """ServiceType for the service. + """ + + SQL_DEDICATED_GATEWAY = "SqlDedicatedGateway" + DATA_TRANSFER = "DataTransfer" + class SpatialType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Indicates the spatial type of index. """ diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/models/_models.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/models/_models.py index 1ca948debf34..0ab403d11710 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/models/_models.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/models/_models.py @@ -85,6 +85,8 @@ class ARMResourceProperties(msrest.serialization.Model): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity """ _validation = { @@ -99,6 +101,7 @@ class ARMResourceProperties(msrest.serialization.Model): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, } def __init__( @@ -111,6 +114,7 @@ def __init__( self.type = None self.location = kwargs.get('location', None) self.tags = kwargs.get('tags', None) + self.identity = kwargs.get('identity', None) class AutoscaleSettings(msrest.serialization.Model): @@ -172,8 +176,8 @@ def __init__( class AutoUpgradePolicyResource(msrest.serialization.Model): """Cosmos DB resource auto-upgrade policy. - :param throughput_policy: Represents throughput policy which service must adhere to for auto- - upgrade. + :param throughput_policy: Represents throughput policy which service must adhere to for + auto-upgrade. :type throughput_policy: ~azure.mgmt.cosmosdb.models.ThroughputPolicyResource """ @@ -189,6 +193,31 @@ def __init__( self.throughput_policy = kwargs.get('throughput_policy', None) +class BackupInformation(msrest.serialization.Model): + """Backup information of a resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar continuous_backup_information: Continuous backup description. + :vartype continuous_backup_information: ~azure.mgmt.cosmosdb.models.ContinuousBackupInformation + """ + + _validation = { + 'continuous_backup_information': {'readonly': True}, + } + + _attribute_map = { + 'continuous_backup_information': {'key': 'continuousBackupInformation', 'type': 'ContinuousBackupInformation'}, + } + + def __init__( + self, + **kwargs + ): + super(BackupInformation, self).__init__(**kwargs) + self.continuous_backup_information = None + + class BackupPolicy(msrest.serialization.Model): """The object representing the policy for taking backups on an account. @@ -222,6 +251,61 @@ def __init__( self.type = None # type: Optional[str] +class BackupResource(ARMProxyResource): + """A restorable backup of a Cassandra cluster. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource identifier of the database account. + :vartype id: str + :ivar name: The name of the database account. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param properties: + :type properties: ~azure.mgmt.cosmosdb.models.BackupResourceProperties + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'BackupResourceProperties'}, + } + + def __init__( + self, + **kwargs + ): + super(BackupResource, self).__init__(**kwargs) + self.properties = kwargs.get('properties', None) + + +class BackupResourceProperties(msrest.serialization.Model): + """BackupResourceProperties. + + :param timestamp: The time this backup was taken, formatted like 2021-01-21T17:35:21. + :type timestamp: ~datetime.datetime + """ + + _attribute_map = { + 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, + } + + def __init__( + self, + **kwargs + ): + super(BackupResourceProperties, self).__init__(**kwargs) + self.timestamp = kwargs.get('timestamp', None) + + class Capability(msrest.serialization.Model): """Cosmos DB capability object. @@ -264,6 +348,8 @@ class CassandraKeyspaceCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a Cassandra keyspace. :type resource: ~azure.mgmt.cosmosdb.models.CassandraKeyspaceResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -284,6 +370,7 @@ class CassandraKeyspaceCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'CassandraKeyspaceResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -467,17 +554,18 @@ class CassandraKeyspaceGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.CassandraKeyspaceGetPropertiesResource - :ivar options: Cosmos DB options resource object. - :vartype options: ~azure.mgmt.cosmosdb.models.OptionsResource + :param options: + :type options: ~azure.mgmt.cosmosdb.models.CassandraKeyspaceGetPropertiesOptions """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'options': {'readonly': True}, } _attribute_map = { @@ -486,8 +574,9 @@ class CassandraKeyspaceGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'CassandraKeyspaceGetPropertiesResource'}, - 'options': {'key': 'properties.options', 'type': 'OptionsResource'}, + 'options': {'key': 'properties.options', 'type': 'CassandraKeyspaceGetPropertiesOptions'}, } def __init__( @@ -496,7 +585,7 @@ def __init__( ): super(CassandraKeyspaceGetResults, self).__init__(**kwargs) self.resource = kwargs.get('resource', None) - self.options = None + self.options = kwargs.get('options', None) class CassandraKeyspaceListResult(msrest.serialization.Model): @@ -592,6 +681,8 @@ class CassandraTableCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a Cassandra table. :type resource: ~azure.mgmt.cosmosdb.models.CassandraTableResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -612,6 +703,7 @@ class CassandraTableCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'CassandraTableResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -759,17 +851,18 @@ class CassandraTableGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.CassandraTableGetPropertiesResource - :ivar options: Cosmos DB options resource object. - :vartype options: ~azure.mgmt.cosmosdb.models.OptionsResource + :param options: + :type options: ~azure.mgmt.cosmosdb.models.CassandraTableGetPropertiesOptions """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'options': {'readonly': True}, } _attribute_map = { @@ -778,8 +871,9 @@ class CassandraTableGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'CassandraTableGetPropertiesResource'}, - 'options': {'key': 'properties.options', 'type': 'OptionsResource'}, + 'options': {'key': 'properties.options', 'type': 'CassandraTableGetPropertiesOptions'}, } def __init__( @@ -788,7 +882,7 @@ def __init__( ): super(CassandraTableGetResults, self).__init__(**kwargs) self.resource = kwargs.get('resource', None) - self.options = None + self.options = kwargs.get('options', None) class CassandraTableListResult(msrest.serialization.Model): @@ -816,6 +910,25 @@ def __init__( self.value = None +class Certificate(msrest.serialization.Model): + """Certificate. + + :param pem: PEM formatted public key. + :type pem: str + """ + + _attribute_map = { + 'pem': {'key': 'pem', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Certificate, self).__init__(**kwargs) + self.pem = kwargs.get('pem', None) + + class ClusterKey(msrest.serialization.Model): """Cosmos DB Cassandra table cluster key. @@ -840,6 +953,244 @@ def __init__( self.order_by = kwargs.get('order_by', None) +class ClusterNodeStatus(msrest.serialization.Model): + """The status of all nodes in the cluster (as returned by 'nodetool status'). + + :param nodes: Information about nodes in the cluster (corresponds to what is returned from + nodetool info). + :type nodes: list[~azure.mgmt.cosmosdb.models.ClusterNodeStatusNodesItem] + """ + + _attribute_map = { + 'nodes': {'key': 'nodes', 'type': '[ClusterNodeStatusNodesItem]'}, + } + + def __init__( + self, + **kwargs + ): + super(ClusterNodeStatus, self).__init__(**kwargs) + self.nodes = kwargs.get('nodes', None) + + +class ClusterNodeStatusNodesItem(msrest.serialization.Model): + """ClusterNodeStatusNodesItem. + + :param datacenter: The Cassandra data center this node resides in. + :type datacenter: str + :param status: Indicates whether the node is functioning or not. Possible values include: "Up", + "Down". + :type status: str or ~azure.mgmt.cosmosdb.models.NodeStatus + :param state: The state of the node in relation to the cluster. Possible values include: + "Normal", "Leaving", "Joining", "Moving", "Stopped". + :type state: str or ~azure.mgmt.cosmosdb.models.NodeState + :param address: The node's URL. + :type address: str + :param load: The amount of file system data in the data directory (e.g., 47.66 KB), excluding + all content in the snapshots subdirectories. Because all SSTable data files are included, any + data that is not cleaned up (such as TTL-expired cell or tombstoned data) is counted. + :type load: str + :param tokens: List of tokens. + :type tokens: list[str] + :param owns: The percentage of the data owned by the node per datacenter times the replication + factor (e.g., 33.3, or null if the data is not available). For example, a node can own 33% of + the ring, but shows 100% if the replication factor is 3. For non-system keyspaces, the endpoint + percentage ownership information is shown. + :type owns: float + :param host_id: The network ID of the node. + :type host_id: str + :param rack: The rack this node is part of. + :type rack: str + """ + + _attribute_map = { + 'datacenter': {'key': 'datacenter', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'str'}, + 'address': {'key': 'address', 'type': 'str'}, + 'load': {'key': 'load', 'type': 'str'}, + 'tokens': {'key': 'tokens', 'type': '[str]'}, + 'owns': {'key': 'owns', 'type': 'float'}, + 'host_id': {'key': 'hostId', 'type': 'str'}, + 'rack': {'key': 'rack', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ClusterNodeStatusNodesItem, self).__init__(**kwargs) + self.datacenter = kwargs.get('datacenter', None) + self.status = kwargs.get('status', None) + self.state = kwargs.get('state', None) + self.address = kwargs.get('address', None) + self.load = kwargs.get('load', None) + self.tokens = kwargs.get('tokens', None) + self.owns = kwargs.get('owns', None) + self.host_id = kwargs.get('host_id', None) + self.rack = kwargs.get('rack', None) + + +class ClusterResource(ARMResourceProperties): + """Representation of a managed Cassandra cluster. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource identifier of the ARM resource. + :vartype id: str + :ivar name: The name of the ARM resource. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param location: The location of the resource group to which the resource belongs. + :type location: str + :param tags: A set of tags. Tags are a list of key-value pairs that describe the resource. + These tags can be used in viewing and grouping this resource (across resource groups). A + maximum of 15 tags can be provided for a resource. Each tag must have a key no greater than 128 + characters and value no greater than 256 characters. For example, the default experience for a + template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values + also include "Table", "Graph", "DocumentDB", and "MongoDB". + :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity + :param properties: Properties of a managed Cassandra cluster. + :type properties: ~azure.mgmt.cosmosdb.models.ClusterResourceProperties + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, + 'properties': {'key': 'properties', 'type': 'ClusterResourceProperties'}, + } + + def __init__( + self, + **kwargs + ): + super(ClusterResource, self).__init__(**kwargs) + self.properties = kwargs.get('properties', None) + + +class ClusterResourceProperties(msrest.serialization.Model): + """Properties of a managed Cassandra cluster. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param provisioning_state: The status of the resource at the time the operation was called. + Possible values include: "Creating", "Updating", "Deleting", "Succeeded", "Failed", "Canceled". + :type provisioning_state: str or ~azure.mgmt.cosmosdb.models.ManagedCassandraProvisioningState + :param restore_from_backup_id: To create an empty cluster, omit this field or set it to null. + To restore a backup into a new cluster, set this field to the resource id of the backup. + :type restore_from_backup_id: str + :param delegated_management_subnet_id: Resource id of a subnet that this cluster's management + service should have its network interface attached to. The subnet must be routable to all + subnets that will be delegated to data centers. The resource id must be of the form + '/subscriptions/:code:``/resourceGroups/:code:``/providers/Microsoft.Network/virtualNetworks/:code:``/subnets/:code:``'. + :type delegated_management_subnet_id: str + :param cassandra_version: Which version of Cassandra should this cluster converge to running + (e.g., 3.11). When updated, the cluster may take some time to migrate to the new version. + :type cassandra_version: str + :param cluster_name_override: If you need to set the clusterName property in cassandra.yaml to + something besides the resource name of the cluster, set the value to use on this property. + :type cluster_name_override: str + :param authentication_method: Which authentication method Cassandra should use to authenticate + clients. 'None' turns off authentication, so should not be used except in emergencies. + 'Cassandra' is the default password based authentication. The default is 'Cassandra'. Possible + values include: "None", "Cassandra". + :type authentication_method: str or ~azure.mgmt.cosmosdb.models.AuthenticationMethod + :param initial_cassandra_admin_password: Initial password for clients connecting as admin to + the cluster. Should be changed after cluster creation. Returns null on GET. This field only + applies when the authenticationMethod field is 'Cassandra'. + :type initial_cassandra_admin_password: str + :param hours_between_backups: Number of hours to wait between taking a backup of the cluster. + To disable backups, set this property to 0. + :type hours_between_backups: int + :param prometheus_endpoint: Hostname or IP address where the Prometheus endpoint containing + data about the managed Cassandra nodes can be reached. + :type prometheus_endpoint: ~azure.mgmt.cosmosdb.models.SeedNode + :param repair_enabled: Should automatic repairs run on this cluster? If omitted, this is true, + and should stay true unless you are running a hybrid cluster where you are already doing your + own repairs. + :type repair_enabled: bool + :param client_certificates: List of TLS certificates used to authorize clients connecting to + the cluster. All connections are TLS encrypted whether clientCertificates is set or not, but if + clientCertificates is set, the managed Cassandra cluster will reject all connections not + bearing a TLS client certificate that can be validated from one or more of the public + certificates in this property. + :type client_certificates: list[~azure.mgmt.cosmosdb.models.Certificate] + :param external_gossip_certificates: List of TLS certificates used to authorize gossip from + unmanaged data centers. The TLS certificates of all nodes in unmanaged data centers must be + verifiable using one of the certificates provided in this property. + :type external_gossip_certificates: list[~azure.mgmt.cosmosdb.models.Certificate] + :ivar gossip_certificates: List of TLS certificates that unmanaged nodes must trust for gossip + with managed nodes. All managed nodes will present TLS client certificates that are verifiable + using one of the certificates provided in this property. + :vartype gossip_certificates: list[~azure.mgmt.cosmosdb.models.Certificate] + :param external_seed_nodes: List of IP addresses of seed nodes in unmanaged data centers. These + will be added to the seed node lists of all managed nodes. + :type external_seed_nodes: list[~azure.mgmt.cosmosdb.models.SeedNode] + :ivar seed_nodes: List of IP addresses of seed nodes in the managed data centers. These should + be added to the seed node lists of all unmanaged nodes. + :vartype seed_nodes: list[~azure.mgmt.cosmosdb.models.SeedNode] + """ + + _validation = { + 'gossip_certificates': {'readonly': True}, + 'seed_nodes': {'readonly': True}, + } + + _attribute_map = { + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'restore_from_backup_id': {'key': 'restoreFromBackupId', 'type': 'str'}, + 'delegated_management_subnet_id': {'key': 'delegatedManagementSubnetId', 'type': 'str'}, + 'cassandra_version': {'key': 'cassandraVersion', 'type': 'str'}, + 'cluster_name_override': {'key': 'clusterNameOverride', 'type': 'str'}, + 'authentication_method': {'key': 'authenticationMethod', 'type': 'str'}, + 'initial_cassandra_admin_password': {'key': 'initialCassandraAdminPassword', 'type': 'str'}, + 'hours_between_backups': {'key': 'hoursBetweenBackups', 'type': 'int'}, + 'prometheus_endpoint': {'key': 'prometheusEndpoint', 'type': 'SeedNode'}, + 'repair_enabled': {'key': 'repairEnabled', 'type': 'bool'}, + 'client_certificates': {'key': 'clientCertificates', 'type': '[Certificate]'}, + 'external_gossip_certificates': {'key': 'externalGossipCertificates', 'type': '[Certificate]'}, + 'gossip_certificates': {'key': 'gossipCertificates', 'type': '[Certificate]'}, + 'external_seed_nodes': {'key': 'externalSeedNodes', 'type': '[SeedNode]'}, + 'seed_nodes': {'key': 'seedNodes', 'type': '[SeedNode]'}, + } + + def __init__( + self, + **kwargs + ): + super(ClusterResourceProperties, self).__init__(**kwargs) + self.provisioning_state = kwargs.get('provisioning_state', None) + self.restore_from_backup_id = kwargs.get('restore_from_backup_id', None) + self.delegated_management_subnet_id = kwargs.get('delegated_management_subnet_id', None) + self.cassandra_version = kwargs.get('cassandra_version', None) + self.cluster_name_override = kwargs.get('cluster_name_override', None) + self.authentication_method = kwargs.get('authentication_method', None) + self.initial_cassandra_admin_password = kwargs.get('initial_cassandra_admin_password', None) + self.hours_between_backups = kwargs.get('hours_between_backups', None) + self.prometheus_endpoint = kwargs.get('prometheus_endpoint', None) + self.repair_enabled = kwargs.get('repair_enabled', None) + self.client_certificates = kwargs.get('client_certificates', None) + self.external_gossip_certificates = kwargs.get('external_gossip_certificates', None) + self.gossip_certificates = None + self.external_seed_nodes = kwargs.get('external_seed_nodes', None) + self.seed_nodes = None + + class Column(msrest.serialization.Model): """Cosmos DB Cassandra table column. @@ -1029,6 +1380,44 @@ def __init__( self.system_key = None +class ContinuousBackupInformation(msrest.serialization.Model): + """Continuous backup description. + + :param latest_restorable_timestamp: The latest restorable timestamp for a resource. + :type latest_restorable_timestamp: str + """ + + _attribute_map = { + 'latest_restorable_timestamp': {'key': 'latestRestorableTimestamp', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ContinuousBackupInformation, self).__init__(**kwargs) + self.latest_restorable_timestamp = kwargs.get('latest_restorable_timestamp', None) + + +class ContinuousBackupRestoreLocation(msrest.serialization.Model): + """Properties of the regional restorable account. + + :param location: The name of the continuous backup restore location. + :type location: str + """ + + _attribute_map = { + 'location': {'key': 'location', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ContinuousBackupRestoreLocation, self).__init__(**kwargs) + self.location = kwargs.get('location', None) + + class ContinuousModeBackupPolicy(BackupPolicy): """The object representing continuous mode backup policy. @@ -1177,11 +1566,52 @@ class DatabaseAccountCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param kind: Indicates the type of database account. This can only be set at database account creation. Possible values include: "GlobalDocumentDB", "MongoDB", "Parse". :type kind: str or ~azure.mgmt.cosmosdb.models.DatabaseAccountKind - :param identity: Identity for the resource. - :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity + :param properties: Required. Properties to create and update Azure Cosmos DB database accounts. + :type properties: ~azure.mgmt.cosmosdb.models.DatabaseAccountCreateUpdateProperties + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'DatabaseAccountCreateUpdateProperties'}, + } + + def __init__( + self, + **kwargs + ): + super(DatabaseAccountCreateUpdateParameters, self).__init__(**kwargs) + self.kind = kwargs.get('kind', None) + self.properties = kwargs['properties'] + + +class DatabaseAccountCreateUpdateProperties(msrest.serialization.Model): + """Properties to create and update Azure Cosmos DB database accounts. + + You probably want to use the sub-classes and not this class directly. Known + sub-classes are: DefaultRequestDatabaseAccountCreateUpdateProperties, RestoreReqeustDatabaseAccountCreateUpdateProperties. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + :param consistency_policy: The consistency policy for the Cosmos DB account. :type consistency_policy: ~azure.mgmt.cosmosdb.models.ConsistencyPolicy :param locations: Required. An array that contains the georeplication locations enabled for the @@ -1230,6 +1660,9 @@ class DatabaseAccountCreateUpdateParameters(ARMResourceProperties): :type api_properties: ~azure.mgmt.cosmosdb.models.ApiProperties :param enable_analytical_storage: Flag to indicate whether to enable storage analytics. :type enable_analytical_storage: bool + :param create_mode: Required. Enum to indicate the mode of account creation.Constant filled by + server. Possible values include: "Default", "Restore". Default value: "Default". + :type create_mode: str or ~azure.mgmt.cosmosdb.models.CreateMode :param backup_policy: The object representing the policy for taking backups on an account. :type backup_policy: ~azure.mgmt.cosmosdb.models.BackupPolicy :param cors: The CORS policy for the Cosmos DB database account. @@ -1243,43 +1676,39 @@ class DatabaseAccountCreateUpdateParameters(ARMResourceProperties): """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, 'locations': {'required': True}, 'database_account_offer_type': {'required': True, 'constant': True}, + 'create_mode': {'required': True}, + } + + _attribute_map = { + 'consistency_policy': {'key': 'consistencyPolicy', 'type': 'ConsistencyPolicy'}, + 'locations': {'key': 'locations', 'type': '[Location]'}, + 'database_account_offer_type': {'key': 'databaseAccountOfferType', 'type': 'str'}, + 'ip_rules': {'key': 'ipRules', 'type': '[IpAddressOrRange]'}, + 'is_virtual_network_filter_enabled': {'key': 'isVirtualNetworkFilterEnabled', 'type': 'bool'}, + 'enable_automatic_failover': {'key': 'enableAutomaticFailover', 'type': 'bool'}, + 'capabilities': {'key': 'capabilities', 'type': '[Capability]'}, + 'virtual_network_rules': {'key': 'virtualNetworkRules', 'type': '[VirtualNetworkRule]'}, + 'enable_multiple_write_locations': {'key': 'enableMultipleWriteLocations', 'type': 'bool'}, + 'enable_cassandra_connector': {'key': 'enableCassandraConnector', 'type': 'bool'}, + 'connector_offer': {'key': 'connectorOffer', 'type': 'str'}, + 'disable_key_based_metadata_write_access': {'key': 'disableKeyBasedMetadataWriteAccess', 'type': 'bool'}, + 'key_vault_key_uri': {'key': 'keyVaultKeyUri', 'type': 'str'}, + 'default_identity': {'key': 'defaultIdentity', 'type': 'str'}, + 'public_network_access': {'key': 'publicNetworkAccess', 'type': 'str'}, + 'enable_free_tier': {'key': 'enableFreeTier', 'type': 'bool'}, + 'api_properties': {'key': 'apiProperties', 'type': 'ApiProperties'}, + 'enable_analytical_storage': {'key': 'enableAnalyticalStorage', 'type': 'bool'}, + 'create_mode': {'key': 'createMode', 'type': 'str'}, + 'backup_policy': {'key': 'backupPolicy', 'type': 'BackupPolicy'}, + 'cors': {'key': 'cors', 'type': '[CorsPolicy]'}, + 'network_acl_bypass': {'key': 'networkAclBypass', 'type': 'str'}, + 'network_acl_bypass_resource_ids': {'key': 'networkAclBypassResourceIds', 'type': '[str]'}, } - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'location': {'key': 'location', 'type': 'str'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'kind': {'key': 'kind', 'type': 'str'}, - 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, - 'consistency_policy': {'key': 'properties.consistencyPolicy', 'type': 'ConsistencyPolicy'}, - 'locations': {'key': 'properties.locations', 'type': '[Location]'}, - 'database_account_offer_type': {'key': 'properties.databaseAccountOfferType', 'type': 'str'}, - 'ip_rules': {'key': 'properties.ipRules', 'type': '[IpAddressOrRange]'}, - 'is_virtual_network_filter_enabled': {'key': 'properties.isVirtualNetworkFilterEnabled', 'type': 'bool'}, - 'enable_automatic_failover': {'key': 'properties.enableAutomaticFailover', 'type': 'bool'}, - 'capabilities': {'key': 'properties.capabilities', 'type': '[Capability]'}, - 'virtual_network_rules': {'key': 'properties.virtualNetworkRules', 'type': '[VirtualNetworkRule]'}, - 'enable_multiple_write_locations': {'key': 'properties.enableMultipleWriteLocations', 'type': 'bool'}, - 'enable_cassandra_connector': {'key': 'properties.enableCassandraConnector', 'type': 'bool'}, - 'connector_offer': {'key': 'properties.connectorOffer', 'type': 'str'}, - 'disable_key_based_metadata_write_access': {'key': 'properties.disableKeyBasedMetadataWriteAccess', 'type': 'bool'}, - 'key_vault_key_uri': {'key': 'properties.keyVaultKeyUri', 'type': 'str'}, - 'default_identity': {'key': 'properties.defaultIdentity', 'type': 'str'}, - 'public_network_access': {'key': 'properties.publicNetworkAccess', 'type': 'str'}, - 'enable_free_tier': {'key': 'properties.enableFreeTier', 'type': 'bool'}, - 'api_properties': {'key': 'properties.apiProperties', 'type': 'ApiProperties'}, - 'enable_analytical_storage': {'key': 'properties.enableAnalyticalStorage', 'type': 'bool'}, - 'backup_policy': {'key': 'properties.backupPolicy', 'type': 'BackupPolicy'}, - 'cors': {'key': 'properties.cors', 'type': '[CorsPolicy]'}, - 'network_acl_bypass': {'key': 'properties.networkAclBypass', 'type': 'str'}, - 'network_acl_bypass_resource_ids': {'key': 'properties.networkAclBypassResourceIds', 'type': '[str]'}, + _subtype_map = { + 'create_mode': {'Default': 'DefaultRequestDatabaseAccountCreateUpdateProperties', 'Restore': 'RestoreReqeustDatabaseAccountCreateUpdateProperties'} } database_account_offer_type = "Standard" @@ -1288,9 +1717,7 @@ def __init__( self, **kwargs ): - super(DatabaseAccountCreateUpdateParameters, self).__init__(**kwargs) - self.kind = kwargs.get('kind', None) - self.identity = kwargs.get('identity', None) + super(DatabaseAccountCreateUpdateProperties, self).__init__(**kwargs) self.consistency_policy = kwargs.get('consistency_policy', None) self.locations = kwargs['locations'] self.ip_rules = kwargs.get('ip_rules', None) @@ -1308,6 +1735,7 @@ def __init__( self.enable_free_tier = kwargs.get('enable_free_tier', None) self.api_properties = kwargs.get('api_properties', None) self.enable_analytical_storage = kwargs.get('enable_analytical_storage', None) + self.create_mode = None # type: Optional[str] self.backup_policy = kwargs.get('backup_policy', None) self.cors = kwargs.get('cors', None) self.network_acl_bypass = kwargs.get('network_acl_bypass', None) @@ -1334,11 +1762,13 @@ class DatabaseAccountGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param kind: Indicates the type of database account. This can only be set at database account creation. Possible values include: "GlobalDocumentDB", "MongoDB", "Parse". :type kind: str or ~azure.mgmt.cosmosdb.models.DatabaseAccountKind - :param identity: Identity for the resource. - :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity + :ivar system_data: The system meta data relating to this resource. + :vartype system_data: ~azure.mgmt.cosmosdb.models.SystemData :ivar provisioning_state: The status of the Cosmos DB account at the time the operation was called. The status can be one of following. 'Creating' – the Cosmos DB account is being created. When an account is in Creating state, only properties that are specified as input for @@ -1408,6 +1838,13 @@ class DatabaseAccountGetResults(ARMResourceProperties): :type api_properties: ~azure.mgmt.cosmosdb.models.ApiProperties :param enable_analytical_storage: Flag to indicate whether to enable storage analytics. :type enable_analytical_storage: bool + :ivar instance_id: A unique identifier assigned to the database account. + :vartype instance_id: str + :param create_mode: Enum to indicate the mode of account creation. Possible values include: + "Default", "Restore". Default value: "Default". + :type create_mode: str or ~azure.mgmt.cosmosdb.models.CreateMode + :param restore_parameters: Parameters to indicate the information about the restore. + :type restore_parameters: ~azure.mgmt.cosmosdb.models.RestoreParameters :param backup_policy: The object representing the policy for taking backups on an account. :type backup_policy: ~azure.mgmt.cosmosdb.models.BackupPolicy :param cors: The CORS policy for the Cosmos DB database account. @@ -1424,6 +1861,7 @@ class DatabaseAccountGetResults(ARMResourceProperties): 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, + 'system_data': {'readonly': True}, 'provisioning_state': {'readonly': True}, 'document_endpoint': {'readonly': True}, 'database_account_offer_type': {'readonly': True, 'constant': True}, @@ -1432,6 +1870,7 @@ class DatabaseAccountGetResults(ARMResourceProperties): 'locations': {'readonly': True}, 'failover_policies': {'readonly': True}, 'private_endpoint_connections': {'readonly': True}, + 'instance_id': {'readonly': True}, } _attribute_map = { @@ -1440,8 +1879,9 @@ class DatabaseAccountGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, - 'kind': {'key': 'kind', 'type': 'str'}, 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'system_data': {'key': 'systemData', 'type': 'SystemData'}, 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 'document_endpoint': {'key': 'properties.documentEndpoint', 'type': 'str'}, 'database_account_offer_type': {'key': 'properties.databaseAccountOfferType', 'type': 'str'}, @@ -1466,6 +1906,9 @@ class DatabaseAccountGetResults(ARMResourceProperties): 'enable_free_tier': {'key': 'properties.enableFreeTier', 'type': 'bool'}, 'api_properties': {'key': 'properties.apiProperties', 'type': 'ApiProperties'}, 'enable_analytical_storage': {'key': 'properties.enableAnalyticalStorage', 'type': 'bool'}, + 'instance_id': {'key': 'properties.instanceId', 'type': 'str'}, + 'create_mode': {'key': 'properties.createMode', 'type': 'str'}, + 'restore_parameters': {'key': 'properties.restoreParameters', 'type': 'RestoreParameters'}, 'backup_policy': {'key': 'properties.backupPolicy', 'type': 'BackupPolicy'}, 'cors': {'key': 'properties.cors', 'type': '[CorsPolicy]'}, 'network_acl_bypass': {'key': 'properties.networkAclBypass', 'type': 'str'}, @@ -1480,7 +1923,7 @@ def __init__( ): super(DatabaseAccountGetResults, self).__init__(**kwargs) self.kind = kwargs.get('kind', None) - self.identity = kwargs.get('identity', None) + self.system_data = None self.provisioning_state = None self.document_endpoint = None self.database_account_offer_type = None @@ -1505,6 +1948,9 @@ def __init__( self.enable_free_tier = kwargs.get('enable_free_tier', None) self.api_properties = kwargs.get('api_properties', None) self.enable_analytical_storage = kwargs.get('enable_analytical_storage', None) + self.instance_id = None + self.create_mode = kwargs.get('create_mode', "Default") + self.restore_parameters = kwargs.get('restore_parameters', None) self.backup_policy = kwargs.get('backup_policy', None) self.cors = kwargs.get('cors', None) self.network_acl_bypass = kwargs.get('network_acl_bypass', None) @@ -1779,122 +2225,459 @@ def __init__( self.network_acl_bypass_resource_ids = kwargs.get('network_acl_bypass_resource_ids', None) -class ErrorAdditionalInfo(msrest.serialization.Model): - """The resource management error additional info. +class DatabaseRestoreResource(msrest.serialization.Model): + """Specific Databases to restore. + + :param database_name: The name of the database available for restore. + :type database_name: str + :param collection_names: The names of the collections available for restore. + :type collection_names: list[str] + """ + + _attribute_map = { + 'database_name': {'key': 'databaseName', 'type': 'str'}, + 'collection_names': {'key': 'collectionNames', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(DatabaseRestoreResource, self).__init__(**kwargs) + self.database_name = kwargs.get('database_name', None) + self.collection_names = kwargs.get('collection_names', None) + + +class DataCenterResource(ARMProxyResource): + """A managed Cassandra data center. Variables are only populated by the server, and will be ignored when sending a request. - :ivar type: The additional info type. + :ivar id: The unique resource identifier of the database account. + :vartype id: str + :ivar name: The name of the database account. + :vartype name: str + :ivar type: The type of Azure resource. :vartype type: str - :ivar info: The additional info. - :vartype info: object + :param properties: Properties of a managed Cassandra data center. + :type properties: ~azure.mgmt.cosmosdb.models.DataCenterResourceProperties """ _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, 'type': {'readonly': True}, - 'info': {'readonly': True}, } _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, 'type': {'key': 'type', 'type': 'str'}, - 'info': {'key': 'info', 'type': 'object'}, + 'properties': {'key': 'properties', 'type': 'DataCenterResourceProperties'}, } def __init__( self, **kwargs ): - super(ErrorAdditionalInfo, self).__init__(**kwargs) - self.type = None - self.info = None + super(DataCenterResource, self).__init__(**kwargs) + self.properties = kwargs.get('properties', None) -class ErrorResponse(msrest.serialization.Model): - """Error Response. +class DataCenterResourceProperties(msrest.serialization.Model): + """Properties of a managed Cassandra data center. - :param code: Error code. - :type code: str - :param message: Error message indicating why the operation failed. - :type message: str + Variables are only populated by the server, and will be ignored when sending a request. + + :param provisioning_state: The status of the resource at the time the operation was called. + Possible values include: "Creating", "Updating", "Deleting", "Succeeded", "Failed", "Canceled". + :type provisioning_state: str or ~azure.mgmt.cosmosdb.models.ManagedCassandraProvisioningState + :param data_center_location: The region this data center should be created in. + :type data_center_location: str + :param delegated_subnet_id: Resource id of a subnet the nodes in this data center should have + their network interfaces connected to. The subnet must be in the same region specified in + 'dataCenterLocation' and must be able to route to the subnet specified in the cluster's + 'delegatedManagementSubnetId' property. This resource id will be of the form + '/subscriptions/:code:``/resourceGroups/:code:``/providers/Microsoft.Network/virtualNetworks/:code:``/subnets/:code:``'. + :type delegated_subnet_id: str + :param node_count: The number of nodes the data center should have. This is the desired number. + After it is set, it may take some time for the data center to be scaled to match. To monitor + the number of nodes and their status, use the fetchNodeStatus method on the cluster. + :type node_count: int + :ivar seed_nodes: IP addresses for seed nodes in this data center. This is for reference. + Generally you will want to use the seedNodes property on the cluster, which aggregates the seed + nodes from all data centers in the cluster. + :vartype seed_nodes: list[~azure.mgmt.cosmosdb.models.SeedNode] + :param base64_encoded_cassandra_yaml_fragment: A fragment of a cassandra.yaml configuration + file to be included in the cassandra.yaml for all nodes in this data center. The fragment + should be Base64 encoded, and only a subset of keys are allowed. + :type base64_encoded_cassandra_yaml_fragment: str """ + _validation = { + 'seed_nodes': {'readonly': True}, + } + _attribute_map = { - 'code': {'key': 'code', 'type': 'str'}, - 'message': {'key': 'message', 'type': 'str'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'data_center_location': {'key': 'dataCenterLocation', 'type': 'str'}, + 'delegated_subnet_id': {'key': 'delegatedSubnetId', 'type': 'str'}, + 'node_count': {'key': 'nodeCount', 'type': 'int'}, + 'seed_nodes': {'key': 'seedNodes', 'type': '[SeedNode]'}, + 'base64_encoded_cassandra_yaml_fragment': {'key': 'base64EncodedCassandraYamlFragment', 'type': 'str'}, } def __init__( self, **kwargs ): - super(ErrorResponse, self).__init__(**kwargs) - self.code = kwargs.get('code', None) - self.message = kwargs.get('message', None) + super(DataCenterResourceProperties, self).__init__(**kwargs) + self.provisioning_state = kwargs.get('provisioning_state', None) + self.data_center_location = kwargs.get('data_center_location', None) + self.delegated_subnet_id = kwargs.get('delegated_subnet_id', None) + self.node_count = kwargs.get('node_count', None) + self.seed_nodes = None + self.base64_encoded_cassandra_yaml_fragment = kwargs.get('base64_encoded_cassandra_yaml_fragment', None) -class ErrorResponseAutoGenerated(msrest.serialization.Model): - """Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). +class RegionalServiceResource(msrest.serialization.Model): + """Resource for a regional service location. Variables are only populated by the server, and will be ignored when sending a request. - :ivar code: The error code. - :vartype code: str - :ivar message: The error message. - :vartype message: str - :ivar target: The error target. - :vartype target: str - :ivar details: The error details. - :vartype details: list[~azure.mgmt.cosmosdb.models.ErrorResponseAutoGenerated] - :ivar additional_info: The error additional info. - :vartype additional_info: list[~azure.mgmt.cosmosdb.models.ErrorAdditionalInfo] + :ivar name: The regional service name. + :vartype name: str + :ivar location: The location name. + :vartype location: str + :ivar status: Describes the status of a service. Possible values include: "Creating", + "Running", "Updating", "Deleting", "Error", "Stopped". + :vartype status: str or ~azure.mgmt.cosmosdb.models.ServiceStatus """ _validation = { - 'code': {'readonly': True}, - 'message': {'readonly': True}, - 'target': {'readonly': True}, - 'details': {'readonly': True}, - 'additional_info': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'readonly': True}, + 'status': {'readonly': True}, } _attribute_map = { - 'code': {'key': 'code', 'type': 'str'}, - 'message': {'key': 'message', 'type': 'str'}, - 'target': {'key': 'target', 'type': 'str'}, - 'details': {'key': 'details', 'type': '[ErrorResponseAutoGenerated]'}, - 'additional_info': {'key': 'additionalInfo', 'type': '[ErrorAdditionalInfo]'}, + 'name': {'key': 'name', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RegionalServiceResource, self).__init__(**kwargs) + self.name = None + self.location = None + self.status = None + + +class DataTransferRegionalServiceResource(RegionalServiceResource): + """Resource for a regional service location. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar name: The regional service name. + :vartype name: str + :ivar location: The location name. + :vartype location: str + :ivar status: Describes the status of a service. Possible values include: "Creating", + "Running", "Updating", "Deleting", "Error", "Stopped". + :vartype status: str or ~azure.mgmt.cosmosdb.models.ServiceStatus + """ + + _validation = { + 'name': {'readonly': True}, + 'location': {'readonly': True}, + 'status': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(DataTransferRegionalServiceResource, self).__init__(**kwargs) + + +class DataTransferServiceResource(msrest.serialization.Model): + """Describes the service response property. + + :param properties: Properties for DataTransferServiceResource. + :type properties: ~azure.mgmt.cosmosdb.models.DataTransferServiceResourceProperties + """ + + _attribute_map = { + 'properties': {'key': 'properties', 'type': 'DataTransferServiceResourceProperties'}, + } + + def __init__( + self, + **kwargs + ): + super(DataTransferServiceResource, self).__init__(**kwargs) + self.properties = kwargs.get('properties', None) + + +class ServiceResourceProperties(msrest.serialization.Model): + """Services response resource. + + You probably want to use the sub-classes and not this class directly. Known + sub-classes are: DataTransferServiceResourceProperties, SqlDedicatedGatewayServiceResourceProperties. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :param additional_properties: Unmatched properties from the message are deserialized to this + collection. + :type additional_properties: dict[str, object] + :ivar creation_time: Time of the last state change (ISO-8601 format). + :vartype creation_time: ~datetime.datetime + :param instance_size: Instance type for the service. Possible values include: "Cosmos.D4s", + "Cosmos.D8s", "Cosmos.D16s". + :type instance_size: str or ~azure.mgmt.cosmosdb.models.ServiceSize + :param instance_count: Instance count for the service. + :type instance_count: int + :param service_type: Required. ServiceType for the service.Constant filled by server. Possible + values include: "SqlDedicatedGateway", "DataTransfer". + :type service_type: str or ~azure.mgmt.cosmosdb.models.ServiceType + :ivar status: Describes the status of a service. Possible values include: "Creating", + "Running", "Updating", "Deleting", "Error", "Stopped". + :vartype status: str or ~azure.mgmt.cosmosdb.models.ServiceStatus + """ + + _validation = { + 'creation_time': {'readonly': True}, + 'instance_count': {'minimum': 0}, + 'service_type': {'required': True}, + 'status': {'readonly': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'instance_size': {'key': 'instanceSize', 'type': 'str'}, + 'instance_count': {'key': 'instanceCount', 'type': 'int'}, + 'service_type': {'key': 'serviceType', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + } + + _subtype_map = { + 'service_type': {'DataTransferServiceResourceProperties': 'DataTransferServiceResourceProperties', 'SqlDedicatedGatewayServiceResourceProperties': 'SqlDedicatedGatewayServiceResourceProperties'} + } + + def __init__( + self, + **kwargs + ): + super(ServiceResourceProperties, self).__init__(**kwargs) + self.additional_properties = kwargs.get('additional_properties', None) + self.creation_time = None + self.instance_size = kwargs.get('instance_size', None) + self.instance_count = kwargs.get('instance_count', None) + self.service_type = 'ServiceResourceProperties' # type: str + self.status = None + + +class DataTransferServiceResourceProperties(ServiceResourceProperties): + """Properties for DataTransferServiceResource. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :param additional_properties: Unmatched properties from the message are deserialized to this + collection. + :type additional_properties: dict[str, object] + :ivar creation_time: Time of the last state change (ISO-8601 format). + :vartype creation_time: ~datetime.datetime + :param instance_size: Instance type for the service. Possible values include: "Cosmos.D4s", + "Cosmos.D8s", "Cosmos.D16s". + :type instance_size: str or ~azure.mgmt.cosmosdb.models.ServiceSize + :param instance_count: Instance count for the service. + :type instance_count: int + :param service_type: Required. ServiceType for the service.Constant filled by server. Possible + values include: "SqlDedicatedGateway", "DataTransfer". + :type service_type: str or ~azure.mgmt.cosmosdb.models.ServiceType + :ivar status: Describes the status of a service. Possible values include: "Creating", + "Running", "Updating", "Deleting", "Error", "Stopped". + :vartype status: str or ~azure.mgmt.cosmosdb.models.ServiceStatus + :ivar locations: An array that contains all of the locations for the service. + :vartype locations: list[~azure.mgmt.cosmosdb.models.DataTransferRegionalServiceResource] + """ + + _validation = { + 'creation_time': {'readonly': True}, + 'instance_count': {'minimum': 0}, + 'service_type': {'required': True}, + 'status': {'readonly': True}, + 'locations': {'readonly': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'instance_size': {'key': 'instanceSize', 'type': 'str'}, + 'instance_count': {'key': 'instanceCount', 'type': 'int'}, + 'service_type': {'key': 'serviceType', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'locations': {'key': 'locations', 'type': '[DataTransferRegionalServiceResource]'}, + } + + def __init__( + self, + **kwargs + ): + super(DataTransferServiceResourceProperties, self).__init__(**kwargs) + self.service_type = 'DataTransferServiceResourceProperties' # type: str + self.locations = None + + +class DefaultRequestDatabaseAccountCreateUpdateProperties(DatabaseAccountCreateUpdateProperties): + """Properties for non-restore Azure Cosmos DB database account requests. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :param consistency_policy: The consistency policy for the Cosmos DB account. + :type consistency_policy: ~azure.mgmt.cosmosdb.models.ConsistencyPolicy + :param locations: Required. An array that contains the georeplication locations enabled for the + Cosmos DB account. + :type locations: list[~azure.mgmt.cosmosdb.models.Location] + :ivar database_account_offer_type: Required. The offer type for the database. Default value: + "Standard". + :vartype database_account_offer_type: str + :param ip_rules: List of IpRules. + :type ip_rules: list[~azure.mgmt.cosmosdb.models.IpAddressOrRange] + :param is_virtual_network_filter_enabled: Flag to indicate whether to enable/disable Virtual + Network ACL rules. + :type is_virtual_network_filter_enabled: bool + :param enable_automatic_failover: Enables automatic failover of the write region in the rare + event that the region is unavailable due to an outage. Automatic failover will result in a new + write region for the account and is chosen based on the failover priorities configured for the + account. + :type enable_automatic_failover: bool + :param capabilities: List of Cosmos DB capabilities for the account. + :type capabilities: list[~azure.mgmt.cosmosdb.models.Capability] + :param virtual_network_rules: List of Virtual Network ACL rules configured for the Cosmos DB + account. + :type virtual_network_rules: list[~azure.mgmt.cosmosdb.models.VirtualNetworkRule] + :param enable_multiple_write_locations: Enables the account to write in multiple locations. + :type enable_multiple_write_locations: bool + :param enable_cassandra_connector: Enables the cassandra connector on the Cosmos DB C* account. + :type enable_cassandra_connector: bool + :param connector_offer: The cassandra connector offer type for the Cosmos DB database C* + account. Possible values include: "Small". + :type connector_offer: str or ~azure.mgmt.cosmosdb.models.ConnectorOffer + :param disable_key_based_metadata_write_access: Disable write operations on metadata resources + (databases, containers, throughput) via account keys. + :type disable_key_based_metadata_write_access: bool + :param key_vault_key_uri: The URI of the key vault. + :type key_vault_key_uri: str + :param default_identity: The default identity for accessing key vault used in features like + customer managed keys. The default identity needs to be explicitly set by the users. It can be + "FirstPartyIdentity", "SystemAssignedIdentity" and more. + :type default_identity: str + :param public_network_access: Whether requests from Public Network are allowed. Possible values + include: "Enabled", "Disabled". + :type public_network_access: str or ~azure.mgmt.cosmosdb.models.PublicNetworkAccess + :param enable_free_tier: Flag to indicate whether Free Tier is enabled. + :type enable_free_tier: bool + :param api_properties: API specific properties. Currently, supported only for MongoDB API. + :type api_properties: ~azure.mgmt.cosmosdb.models.ApiProperties + :param enable_analytical_storage: Flag to indicate whether to enable storage analytics. + :type enable_analytical_storage: bool + :param create_mode: Required. Enum to indicate the mode of account creation.Constant filled by + server. Possible values include: "Default", "Restore". Default value: "Default". + :type create_mode: str or ~azure.mgmt.cosmosdb.models.CreateMode + :param backup_policy: The object representing the policy for taking backups on an account. + :type backup_policy: ~azure.mgmt.cosmosdb.models.BackupPolicy + :param cors: The CORS policy for the Cosmos DB database account. + :type cors: list[~azure.mgmt.cosmosdb.models.CorsPolicy] + :param network_acl_bypass: Indicates what services are allowed to bypass firewall checks. + Possible values include: "None", "AzureServices". + :type network_acl_bypass: str or ~azure.mgmt.cosmosdb.models.NetworkAclBypass + :param network_acl_bypass_resource_ids: An array that contains the Resource Ids for Network Acl + Bypass for the Cosmos DB account. + :type network_acl_bypass_resource_ids: list[str] + """ + + _validation = { + 'locations': {'required': True}, + 'database_account_offer_type': {'required': True, 'constant': True}, + 'create_mode': {'required': True}, + } + + _attribute_map = { + 'consistency_policy': {'key': 'consistencyPolicy', 'type': 'ConsistencyPolicy'}, + 'locations': {'key': 'locations', 'type': '[Location]'}, + 'database_account_offer_type': {'key': 'databaseAccountOfferType', 'type': 'str'}, + 'ip_rules': {'key': 'ipRules', 'type': '[IpAddressOrRange]'}, + 'is_virtual_network_filter_enabled': {'key': 'isVirtualNetworkFilterEnabled', 'type': 'bool'}, + 'enable_automatic_failover': {'key': 'enableAutomaticFailover', 'type': 'bool'}, + 'capabilities': {'key': 'capabilities', 'type': '[Capability]'}, + 'virtual_network_rules': {'key': 'virtualNetworkRules', 'type': '[VirtualNetworkRule]'}, + 'enable_multiple_write_locations': {'key': 'enableMultipleWriteLocations', 'type': 'bool'}, + 'enable_cassandra_connector': {'key': 'enableCassandraConnector', 'type': 'bool'}, + 'connector_offer': {'key': 'connectorOffer', 'type': 'str'}, + 'disable_key_based_metadata_write_access': {'key': 'disableKeyBasedMetadataWriteAccess', 'type': 'bool'}, + 'key_vault_key_uri': {'key': 'keyVaultKeyUri', 'type': 'str'}, + 'default_identity': {'key': 'defaultIdentity', 'type': 'str'}, + 'public_network_access': {'key': 'publicNetworkAccess', 'type': 'str'}, + 'enable_free_tier': {'key': 'enableFreeTier', 'type': 'bool'}, + 'api_properties': {'key': 'apiProperties', 'type': 'ApiProperties'}, + 'enable_analytical_storage': {'key': 'enableAnalyticalStorage', 'type': 'bool'}, + 'create_mode': {'key': 'createMode', 'type': 'str'}, + 'backup_policy': {'key': 'backupPolicy', 'type': 'BackupPolicy'}, + 'cors': {'key': 'cors', 'type': '[CorsPolicy]'}, + 'network_acl_bypass': {'key': 'networkAclBypass', 'type': 'str'}, + 'network_acl_bypass_resource_ids': {'key': 'networkAclBypassResourceIds', 'type': '[str]'}, } + database_account_offer_type = "Standard" + def __init__( self, **kwargs ): - super(ErrorResponseAutoGenerated, self).__init__(**kwargs) - self.code = None - self.message = None - self.target = None - self.details = None - self.additional_info = None + super(DefaultRequestDatabaseAccountCreateUpdateProperties, self).__init__(**kwargs) + self.create_mode = 'Default' # type: str -class ErrorResponseUpdatedFormat(msrest.serialization.Model): - """An error response from the service. +class ErrorResponse(msrest.serialization.Model): + """Error Response. - :param error: Common error response for all Azure Resource Manager APIs to return error details - for failed operations. (This also follows the OData error response format.). - :type error: ~azure.mgmt.cosmosdb.models.ErrorResponseAutoGenerated + :param code: Error code. + :type code: str + :param message: Error message indicating why the operation failed. + :type message: str """ _attribute_map = { - 'error': {'key': 'error', 'type': 'ErrorResponseAutoGenerated'}, + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, } def __init__( self, **kwargs ): - super(ErrorResponseUpdatedFormat, self).__init__(**kwargs) - self.error = kwargs.get('error', None) + super(ErrorResponse, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) class ExcludedPath(msrest.serialization.Model): @@ -2002,6 +2785,8 @@ class GremlinDatabaseCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a Gremlin database. :type resource: ~azure.mgmt.cosmosdb.models.GremlinDatabaseResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -2022,6 +2807,7 @@ class GremlinDatabaseCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'GremlinDatabaseResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -2145,17 +2931,18 @@ class GremlinDatabaseGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.GremlinDatabaseGetPropertiesResource - :ivar options: Cosmos DB options resource object. - :vartype options: ~azure.mgmt.cosmosdb.models.OptionsResource + :param options: + :type options: ~azure.mgmt.cosmosdb.models.GremlinDatabaseGetPropertiesOptions """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'options': {'readonly': True}, } _attribute_map = { @@ -2164,8 +2951,9 @@ class GremlinDatabaseGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'GremlinDatabaseGetPropertiesResource'}, - 'options': {'key': 'properties.options', 'type': 'OptionsResource'}, + 'options': {'key': 'properties.options', 'type': 'GremlinDatabaseGetPropertiesOptions'}, } def __init__( @@ -2174,7 +2962,7 @@ def __init__( ): super(GremlinDatabaseGetResults, self).__init__(**kwargs) self.resource = kwargs.get('resource', None) - self.options = None + self.options = kwargs.get('options', None) class GremlinDatabaseListResult(msrest.serialization.Model): @@ -2224,6 +3012,8 @@ class GremlinGraphCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a Gremlin graph. :type resource: ~azure.mgmt.cosmosdb.models.GremlinGraphResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -2244,6 +3034,7 @@ class GremlinGraphCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'GremlinGraphResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -2413,17 +3204,18 @@ class GremlinGraphGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.GremlinGraphGetPropertiesResource - :ivar options: Cosmos DB options resource object. - :vartype options: ~azure.mgmt.cosmosdb.models.OptionsResource + :param options: + :type options: ~azure.mgmt.cosmosdb.models.GremlinGraphGetPropertiesOptions """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'options': {'readonly': True}, } _attribute_map = { @@ -2432,8 +3224,9 @@ class GremlinGraphGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'GremlinGraphGetPropertiesResource'}, - 'options': {'key': 'properties.options', 'type': 'OptionsResource'}, + 'options': {'key': 'properties.options', 'type': 'GremlinGraphGetPropertiesOptions'}, } def __init__( @@ -2442,7 +3235,7 @@ def __init__( ): super(GremlinGraphGetResults, self).__init__(**kwargs) self.resource = kwargs.get('resource', None) - self.options = None + self.options = kwargs.get('options', None) class GremlinGraphListResult(msrest.serialization.Model): @@ -2587,6 +3380,75 @@ def __init__( self.ip_address_or_range = kwargs.get('ip_address_or_range', None) +class ListBackups(msrest.serialization.Model): + """List of restorable backups for a Cassandra cluster. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: Container for array of backups. + :vartype value: list[~azure.mgmt.cosmosdb.models.BackupResource] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[BackupResource]'}, + } + + def __init__( + self, + **kwargs + ): + super(ListBackups, self).__init__(**kwargs) + self.value = None + + +class ListClusters(msrest.serialization.Model): + """List of managed Cassandra clusters. + + :param value: Container for the array of clusters. + :type value: list[~azure.mgmt.cosmosdb.models.ClusterResource] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ClusterResource]'}, + } + + def __init__( + self, + **kwargs + ): + super(ListClusters, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + + +class ListDataCenters(msrest.serialization.Model): + """List of managed Cassandra data centers and their properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: Container for array of data centers. + :vartype value: list[~azure.mgmt.cosmosdb.models.DataCenterResource] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[DataCenterResource]'}, + } + + def __init__( + self, + **kwargs + ): + super(ListDataCenters, self).__init__(**kwargs) + self.value = None + + class Location(msrest.serialization.Model): """A region in which the Azure Cosmos DB database account is deployed. @@ -2647,6 +3509,109 @@ def __init__( self.is_zone_redundant = kwargs.get('is_zone_redundant', None) +class LocationGetResult(ARMProxyResource): + """Cosmos DB location get result. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource identifier of the database account. + :vartype id: str + :ivar name: The name of the database account. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param properties: Cosmos DB location metadata. + :type properties: ~azure.mgmt.cosmosdb.models.LocationProperties + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'LocationProperties'}, + } + + def __init__( + self, + **kwargs + ): + super(LocationGetResult, self).__init__(**kwargs) + self.properties = kwargs.get('properties', None) + + +class LocationListResult(msrest.serialization.Model): + """The List operation response, that contains Cosmos DB locations and their properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of Cosmos DB locations and their properties. + :vartype value: list[~azure.mgmt.cosmosdb.models.LocationGetResult] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[LocationGetResult]'}, + } + + def __init__( + self, + **kwargs + ): + super(LocationListResult, self).__init__(**kwargs) + self.value = None + + +class LocationProperties(msrest.serialization.Model): + """Cosmos DB location metadata. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar status: The current status of location in Azure. + :vartype status: str + :ivar supports_availability_zone: Flag indicating whether the location supports availability + zones or not. + :vartype supports_availability_zone: bool + :ivar is_residency_restricted: Flag indicating whether the location is residency sensitive. + :vartype is_residency_restricted: bool + :ivar backup_storage_redundancies: The properties of available backup storage redundancies. + :vartype backup_storage_redundancies: list[str or + ~azure.mgmt.cosmosdb.models.BackupStorageRedundancy] + """ + + _validation = { + 'status': {'readonly': True}, + 'supports_availability_zone': {'readonly': True}, + 'is_residency_restricted': {'readonly': True}, + 'backup_storage_redundancies': {'readonly': True}, + } + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'supports_availability_zone': {'key': 'supportsAvailabilityZone', 'type': 'bool'}, + 'is_residency_restricted': {'key': 'isResidencyRestricted', 'type': 'bool'}, + 'backup_storage_redundancies': {'key': 'backupStorageRedundancies', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(LocationProperties, self).__init__(**kwargs) + self.status = None + self.supports_availability_zone = None + self.is_residency_restricted = None + self.backup_storage_redundancies = None + + class ManagedServiceIdentity(msrest.serialization.Model): """Identity for the resource. @@ -2973,6 +3938,8 @@ class MongoDBCollectionCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a MongoDB collection. :type resource: ~azure.mgmt.cosmosdb.models.MongoDBCollectionResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -2993,6 +3960,7 @@ class MongoDBCollectionCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'MongoDBCollectionResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -3140,17 +4108,18 @@ class MongoDBCollectionGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.MongoDBCollectionGetPropertiesResource - :ivar options: Cosmos DB options resource object. - :vartype options: ~azure.mgmt.cosmosdb.models.OptionsResource + :param options: + :type options: ~azure.mgmt.cosmosdb.models.MongoDBCollectionGetPropertiesOptions """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'options': {'readonly': True}, } _attribute_map = { @@ -3159,8 +4128,9 @@ class MongoDBCollectionGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'MongoDBCollectionGetPropertiesResource'}, - 'options': {'key': 'properties.options', 'type': 'OptionsResource'}, + 'options': {'key': 'properties.options', 'type': 'MongoDBCollectionGetPropertiesOptions'}, } def __init__( @@ -3169,7 +4139,7 @@ def __init__( ): super(MongoDBCollectionGetResults, self).__init__(**kwargs) self.resource = kwargs.get('resource', None) - self.options = None + self.options = kwargs.get('options', None) class MongoDBCollectionListResult(msrest.serialization.Model): @@ -3219,6 +4189,8 @@ class MongoDBDatabaseCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a MongoDB database. :type resource: ~azure.mgmt.cosmosdb.models.MongoDBDatabaseResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -3239,6 +4211,7 @@ class MongoDBDatabaseCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'MongoDBDatabaseResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -3362,17 +4335,18 @@ class MongoDBDatabaseGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.MongoDBDatabaseGetPropertiesResource - :ivar options: Cosmos DB options resource object. - :vartype options: ~azure.mgmt.cosmosdb.models.OptionsResource + :param options: + :type options: ~azure.mgmt.cosmosdb.models.MongoDBDatabaseGetPropertiesOptions """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'options': {'readonly': True}, } _attribute_map = { @@ -3381,8 +4355,9 @@ class MongoDBDatabaseGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'MongoDBDatabaseGetPropertiesResource'}, - 'options': {'key': 'properties.options', 'type': 'OptionsResource'}, + 'options': {'key': 'properties.options', 'type': 'MongoDBDatabaseGetPropertiesOptions'}, } def __init__( @@ -3391,7 +4366,7 @@ def __init__( ): super(MongoDBDatabaseGetResults, self).__init__(**kwargs) self.resource = kwargs.get('resource', None) - self.options = None + self.options = kwargs.get('options', None) class MongoDBDatabaseListResult(msrest.serialization.Model): @@ -4084,6 +5059,9 @@ class PeriodicModeProperties(msrest.serialization.Model): :param backup_retention_interval_in_hours: An integer representing the time (in hours) that each backup is retained. :type backup_retention_interval_in_hours: int + :param backup_storage_redundancy: Enum to indicate type of backup residency. Possible values + include: "Geo", "Local", "Zone". + :type backup_storage_redundancy: str or ~azure.mgmt.cosmosdb.models.BackupStorageRedundancy """ _validation = { @@ -4094,6 +5072,7 @@ class PeriodicModeProperties(msrest.serialization.Model): _attribute_map = { 'backup_interval_in_minutes': {'key': 'backupIntervalInMinutes', 'type': 'int'}, 'backup_retention_interval_in_hours': {'key': 'backupRetentionIntervalInHours', 'type': 'int'}, + 'backup_storage_redundancy': {'key': 'backupStorageRedundancy', 'type': 'str'}, } def __init__( @@ -4103,6 +5082,30 @@ def __init__( super(PeriodicModeProperties, self).__init__(**kwargs) self.backup_interval_in_minutes = kwargs.get('backup_interval_in_minutes', None) self.backup_retention_interval_in_hours = kwargs.get('backup_retention_interval_in_hours', None) + self.backup_storage_redundancy = kwargs.get('backup_storage_redundancy', None) + + +class Permission(msrest.serialization.Model): + """The set of data plane operations permitted through this Role Definition. + + :param data_actions: An array of data actions that are allowed. + :type data_actions: list[str] + :param not_data_actions: An array of data actions that are denied. + :type not_data_actions: list[str] + """ + + _attribute_map = { + 'data_actions': {'key': 'dataActions', 'type': '[str]'}, + 'not_data_actions': {'key': 'notDataActions', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(Permission, self).__init__(**kwargs) + self.data_actions = kwargs.get('data_actions', None) + self.not_data_actions = kwargs.get('not_data_actions', None) class Resource(msrest.serialization.Model): @@ -4142,7 +5145,41 @@ def __init__( self.type = None -class PrivateEndpointConnection(Resource): +class ProxyResource(Resource): + """The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ProxyResource, self).__init__(**kwargs) + + +class PrivateEndpointConnection(ProxyResource): """A private endpoint connection. Variables are only populated by the server, and will be ignored when sending a request. @@ -4332,40 +5369,6 @@ def __init__( self.actions_required = None -class ProxyResource(Resource): - """The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: Fully qualified resource ID for the resource. Ex - - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. - :vartype id: str - :ivar name: The name of the resource. - :vartype name: str - :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or - "Microsoft.Storage/storageAccounts". - :vartype type: str - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(ProxyResource, self).__init__(**kwargs) - - class RegionForOnlineOffline(msrest.serialization.Model): """Cosmos DB region to online or offline. @@ -4391,37 +5394,41 @@ def __init__( self.region = kwargs['region'] -class SpatialSpec(msrest.serialization.Model): - """SpatialSpec. +class RepairPostBody(msrest.serialization.Model): + """Specification of the keyspaces and tables to run repair on. - :param path: The path for which the indexing behavior applies to. Index paths typically start - with root and end with wildcard (/path/*). - :type path: str - :param types: List of path's spatial type. - :type types: list[str or ~azure.mgmt.cosmosdb.models.SpatialType] + All required parameters must be populated in order to send to Azure. + + :param keyspace: Required. The name of the keyspace that repair should be run on. + :type keyspace: str + :param tables: List of tables in the keyspace to repair. If omitted, repair all tables in the + keyspace. + :type tables: list[str] """ + _validation = { + 'keyspace': {'required': True}, + } + _attribute_map = { - 'path': {'key': 'path', 'type': 'str'}, - 'types': {'key': 'types', 'type': '[str]'}, + 'keyspace': {'key': 'keyspace', 'type': 'str'}, + 'tables': {'key': 'tables', 'type': '[str]'}, } def __init__( self, **kwargs ): - super(SpatialSpec, self).__init__(**kwargs) - self.path = kwargs.get('path', None) - self.types = kwargs.get('types', None) + super(RepairPostBody, self).__init__(**kwargs) + self.keyspace = kwargs['keyspace'] + self.tables = kwargs.get('tables', None) -class SqlContainerCreateUpdateParameters(ARMResourceProperties): - """Parameters to create and update Cosmos DB container. +class RestorableDatabaseAccountGetResult(msrest.serialization.Model): + """A Azure Cosmos DB restorable database account. Variables are only populated by the server, and will be ignored when sending a request. - All required parameters must be populated in order to send to Azure. - :ivar id: The unique resource identifier of the ARM resource. :vartype id: str :ivar name: The name of the ARM resource. @@ -4430,16 +5437,1122 @@ class SqlContainerCreateUpdateParameters(ARMResourceProperties): :vartype type: str :param location: The location of the resource group to which the resource belongs. :type location: str - :param tags: A set of tags. Tags are a list of key-value pairs that describe the resource. - These tags can be used in viewing and grouping this resource (across resource groups). A - maximum of 15 tags can be provided for a resource. Each tag must have a key no greater than 128 - characters and value no greater than 256 characters. For example, the default experience for a - template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values - also include "Table", "Graph", "DocumentDB", and "MongoDB". - :type tags: dict[str, str] - :param resource: Required. The standard JSON format of a container. - :type resource: ~azure.mgmt.cosmosdb.models.SqlContainerResource - :param options: A key-value pair of options to be applied for the request. This corresponds to + :param account_name: The name of the global database account. + :type account_name: str + :param creation_time: The creation time of the restorable database account (ISO-8601 format). + :type creation_time: ~datetime.datetime + :param deletion_time: The time at which the restorable database account has been deleted + (ISO-8601 format). + :type deletion_time: ~datetime.datetime + :ivar api_type: The API type of the restorable database account. Possible values include: + "MongoDB", "Gremlin", "Cassandra", "Table", "Sql", "GremlinV2". + :vartype api_type: str or ~azure.mgmt.cosmosdb.models.ApiType + :ivar restorable_locations: List of regions where the of the database account can be restored + from. + :vartype restorable_locations: list[~azure.mgmt.cosmosdb.models.RestorableLocationResource] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'api_type': {'readonly': True}, + 'restorable_locations': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'account_name': {'key': 'properties.accountName', 'type': 'str'}, + 'creation_time': {'key': 'properties.creationTime', 'type': 'iso-8601'}, + 'deletion_time': {'key': 'properties.deletionTime', 'type': 'iso-8601'}, + 'api_type': {'key': 'properties.apiType', 'type': 'str'}, + 'restorable_locations': {'key': 'properties.restorableLocations', 'type': '[RestorableLocationResource]'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableDatabaseAccountGetResult, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.location = kwargs.get('location', None) + self.account_name = kwargs.get('account_name', None) + self.creation_time = kwargs.get('creation_time', None) + self.deletion_time = kwargs.get('deletion_time', None) + self.api_type = None + self.restorable_locations = None + + +class RestorableDatabaseAccountsListResult(msrest.serialization.Model): + """The List operation response, that contains the restorable database accounts and their properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of restorable database accounts and their properties. + :vartype value: list[~azure.mgmt.cosmosdb.models.RestorableDatabaseAccountGetResult] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[RestorableDatabaseAccountGetResult]'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableDatabaseAccountsListResult, self).__init__(**kwargs) + self.value = None + + +class RestorableLocationResource(msrest.serialization.Model): + """Properties of the regional restorable account. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar location_name: The location of the regional restorable account. + :vartype location_name: str + :ivar regional_database_account_instance_id: The instance id of the regional restorable + account. + :vartype regional_database_account_instance_id: str + :ivar creation_time: The creation time of the regional restorable database account (ISO-8601 + format). + :vartype creation_time: ~datetime.datetime + :ivar deletion_time: The time at which the regional restorable database account has been + deleted (ISO-8601 format). + :vartype deletion_time: ~datetime.datetime + """ + + _validation = { + 'location_name': {'readonly': True}, + 'regional_database_account_instance_id': {'readonly': True}, + 'creation_time': {'readonly': True}, + 'deletion_time': {'readonly': True}, + } + + _attribute_map = { + 'location_name': {'key': 'locationName', 'type': 'str'}, + 'regional_database_account_instance_id': {'key': 'regionalDatabaseAccountInstanceId', 'type': 'str'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'deletion_time': {'key': 'deletionTime', 'type': 'iso-8601'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableLocationResource, self).__init__(**kwargs) + self.location_name = None + self.regional_database_account_instance_id = None + self.creation_time = None + self.deletion_time = None + + +class RestorableMongodbCollectionGetResult(msrest.serialization.Model): + """An Azure Cosmos DB MongoDB collection event. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource Identifier of the ARM resource. + :vartype id: str + :ivar name: The name of the ARM resource. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param resource: The resource of an Azure Cosmos DB MongoDB collection event. + :type resource: ~azure.mgmt.cosmosdb.models.RestorableMongodbCollectionPropertiesResource + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'resource': {'key': 'properties.resource', 'type': 'RestorableMongodbCollectionPropertiesResource'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableMongodbCollectionGetResult, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.resource = kwargs.get('resource', None) + + +class RestorableMongodbCollectionPropertiesResource(msrest.serialization.Model): + """The resource of an Azure Cosmos DB MongoDB collection event. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar rid: A system generated property. A unique identifier. + :vartype rid: str + :ivar operation_type: The operation type of this collection event. Possible values include: + "Create", "Replace", "Delete", "SystemOperation". + :vartype operation_type: str or ~azure.mgmt.cosmosdb.models.OperationType + :ivar event_timestamp: The time when this collection event happened. + :vartype event_timestamp: str + :ivar owner_id: The name of this MongoDB collection. + :vartype owner_id: str + :ivar owner_resource_id: The resource ID of this MongoDB collection. + :vartype owner_resource_id: str + """ + + _validation = { + 'rid': {'readonly': True}, + 'operation_type': {'readonly': True}, + 'event_timestamp': {'readonly': True}, + 'owner_id': {'readonly': True}, + 'owner_resource_id': {'readonly': True}, + } + + _attribute_map = { + 'rid': {'key': '_rid', 'type': 'str'}, + 'operation_type': {'key': 'operationType', 'type': 'str'}, + 'event_timestamp': {'key': 'eventTimestamp', 'type': 'str'}, + 'owner_id': {'key': 'ownerId', 'type': 'str'}, + 'owner_resource_id': {'key': 'ownerResourceId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableMongodbCollectionPropertiesResource, self).__init__(**kwargs) + self.rid = None + self.operation_type = None + self.event_timestamp = None + self.owner_id = None + self.owner_resource_id = None + + +class RestorableMongodbCollectionsListResult(msrest.serialization.Model): + """The List operation response, that contains the MongoDB collection events and their properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of MongoDB collection events and their properties. + :vartype value: list[~azure.mgmt.cosmosdb.models.RestorableMongodbCollectionGetResult] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[RestorableMongodbCollectionGetResult]'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableMongodbCollectionsListResult, self).__init__(**kwargs) + self.value = None + + +class RestorableMongodbDatabaseGetResult(msrest.serialization.Model): + """An Azure Cosmos DB MongoDB database event. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource Identifier of the ARM resource. + :vartype id: str + :ivar name: The name of the ARM resource. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param resource: The resource of an Azure Cosmos DB MongoDB database event. + :type resource: ~azure.mgmt.cosmosdb.models.RestorableMongodbDatabasePropertiesResource + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'resource': {'key': 'properties.resource', 'type': 'RestorableMongodbDatabasePropertiesResource'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableMongodbDatabaseGetResult, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.resource = kwargs.get('resource', None) + + +class RestorableMongodbDatabasePropertiesResource(msrest.serialization.Model): + """The resource of an Azure Cosmos DB MongoDB database event. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar rid: A system generated property. A unique identifier. + :vartype rid: str + :ivar operation_type: The operation type of this database event. Possible values include: + "Create", "Replace", "Delete", "SystemOperation". + :vartype operation_type: str or ~azure.mgmt.cosmosdb.models.OperationType + :ivar event_timestamp: The time when this database event happened. + :vartype event_timestamp: str + :ivar owner_id: The name of this MongoDB database. + :vartype owner_id: str + :ivar owner_resource_id: The resource ID of this MongoDB database. + :vartype owner_resource_id: str + """ + + _validation = { + 'rid': {'readonly': True}, + 'operation_type': {'readonly': True}, + 'event_timestamp': {'readonly': True}, + 'owner_id': {'readonly': True}, + 'owner_resource_id': {'readonly': True}, + } + + _attribute_map = { + 'rid': {'key': '_rid', 'type': 'str'}, + 'operation_type': {'key': 'operationType', 'type': 'str'}, + 'event_timestamp': {'key': 'eventTimestamp', 'type': 'str'}, + 'owner_id': {'key': 'ownerId', 'type': 'str'}, + 'owner_resource_id': {'key': 'ownerResourceId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableMongodbDatabasePropertiesResource, self).__init__(**kwargs) + self.rid = None + self.operation_type = None + self.event_timestamp = None + self.owner_id = None + self.owner_resource_id = None + + +class RestorableMongodbDatabasesListResult(msrest.serialization.Model): + """The List operation response, that contains the MongoDB database events and their properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of MongoDB database events and their properties. + :vartype value: list[~azure.mgmt.cosmosdb.models.RestorableMongodbDatabaseGetResult] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[RestorableMongodbDatabaseGetResult]'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableMongodbDatabasesListResult, self).__init__(**kwargs) + self.value = None + + +class RestorableMongodbResourcesListResult(msrest.serialization.Model): + """The List operation response, that contains the restorable MongoDB resources. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of restorable MongoDB resources, including the database and collection names. + :vartype value: list[~azure.mgmt.cosmosdb.models.DatabaseRestoreResource] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[DatabaseRestoreResource]'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableMongodbResourcesListResult, self).__init__(**kwargs) + self.value = None + + +class RestorableSqlContainerGetResult(msrest.serialization.Model): + """An Azure Cosmos DB SQL container event. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource Identifier of the ARM resource. + :vartype id: str + :ivar name: The name of the ARM resource. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param resource: The resource of an Azure Cosmos DB SQL container event. + :type resource: ~azure.mgmt.cosmosdb.models.RestorableSqlContainerPropertiesResource + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'resource': {'key': 'properties.resource', 'type': 'RestorableSqlContainerPropertiesResource'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableSqlContainerGetResult, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.resource = kwargs.get('resource', None) + + +class RestorableSqlContainerPropertiesResource(msrest.serialization.Model): + """The resource of an Azure Cosmos DB SQL container event. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar rid: A system generated property. A unique identifier. + :vartype rid: str + :ivar operation_type: The operation type of this container event. Possible values include: + "Create", "Replace", "Delete", "SystemOperation". + :vartype operation_type: str or ~azure.mgmt.cosmosdb.models.OperationType + :ivar event_timestamp: The when this container event happened. + :vartype event_timestamp: str + :ivar owner_id: The name of this SQL container. + :vartype owner_id: str + :ivar owner_resource_id: The resource ID of this SQL container. + :vartype owner_resource_id: str + :param container: Cosmos DB SQL container resource object. + :type container: ~azure.mgmt.cosmosdb.models.RestorableSqlContainerPropertiesResourceContainer + """ + + _validation = { + 'rid': {'readonly': True}, + 'operation_type': {'readonly': True}, + 'event_timestamp': {'readonly': True}, + 'owner_id': {'readonly': True}, + 'owner_resource_id': {'readonly': True}, + } + + _attribute_map = { + 'rid': {'key': '_rid', 'type': 'str'}, + 'operation_type': {'key': 'operationType', 'type': 'str'}, + 'event_timestamp': {'key': 'eventTimestamp', 'type': 'str'}, + 'owner_id': {'key': 'ownerId', 'type': 'str'}, + 'owner_resource_id': {'key': 'ownerResourceId', 'type': 'str'}, + 'container': {'key': 'container', 'type': 'RestorableSqlContainerPropertiesResourceContainer'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableSqlContainerPropertiesResource, self).__init__(**kwargs) + self.rid = None + self.operation_type = None + self.event_timestamp = None + self.owner_id = None + self.owner_resource_id = None + self.container = kwargs.get('container', None) + + +class SqlContainerResource(msrest.serialization.Model): + """Cosmos DB SQL container resource object. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. Name of the Cosmos DB SQL container. + :type id: str + :param indexing_policy: The configuration of the indexing policy. By default, the indexing is + automatic for all document paths within the container. + :type indexing_policy: ~azure.mgmt.cosmosdb.models.IndexingPolicy + :param partition_key: The configuration of the partition key to be used for partitioning data + into multiple partitions. + :type partition_key: ~azure.mgmt.cosmosdb.models.ContainerPartitionKey + :param default_ttl: Default time to live. + :type default_ttl: int + :param unique_key_policy: The unique key policy configuration for specifying uniqueness + constraints on documents in the collection in the Azure Cosmos DB service. + :type unique_key_policy: ~azure.mgmt.cosmosdb.models.UniqueKeyPolicy + :param conflict_resolution_policy: The conflict resolution policy for the container. + :type conflict_resolution_policy: ~azure.mgmt.cosmosdb.models.ConflictResolutionPolicy + :param analytical_storage_ttl: Analytical TTL. + :type analytical_storage_ttl: long + """ + + _validation = { + 'id': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'indexing_policy': {'key': 'indexingPolicy', 'type': 'IndexingPolicy'}, + 'partition_key': {'key': 'partitionKey', 'type': 'ContainerPartitionKey'}, + 'default_ttl': {'key': 'defaultTtl', 'type': 'int'}, + 'unique_key_policy': {'key': 'uniqueKeyPolicy', 'type': 'UniqueKeyPolicy'}, + 'conflict_resolution_policy': {'key': 'conflictResolutionPolicy', 'type': 'ConflictResolutionPolicy'}, + 'analytical_storage_ttl': {'key': 'analyticalStorageTtl', 'type': 'long'}, + } + + def __init__( + self, + **kwargs + ): + super(SqlContainerResource, self).__init__(**kwargs) + self.id = kwargs['id'] + self.indexing_policy = kwargs.get('indexing_policy', None) + self.partition_key = kwargs.get('partition_key', None) + self.default_ttl = kwargs.get('default_ttl', None) + self.unique_key_policy = kwargs.get('unique_key_policy', None) + self.conflict_resolution_policy = kwargs.get('conflict_resolution_policy', None) + self.analytical_storage_ttl = kwargs.get('analytical_storage_ttl', None) + + +class RestorableSqlContainerPropertiesResourceContainer(ExtendedResourceProperties, SqlContainerResource): + """Cosmos DB SQL container resource object. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. Name of the Cosmos DB SQL container. + :type id: str + :param indexing_policy: The configuration of the indexing policy. By default, the indexing is + automatic for all document paths within the container. + :type indexing_policy: ~azure.mgmt.cosmosdb.models.IndexingPolicy + :param partition_key: The configuration of the partition key to be used for partitioning data + into multiple partitions. + :type partition_key: ~azure.mgmt.cosmosdb.models.ContainerPartitionKey + :param default_ttl: Default time to live. + :type default_ttl: int + :param unique_key_policy: The unique key policy configuration for specifying uniqueness + constraints on documents in the collection in the Azure Cosmos DB service. + :type unique_key_policy: ~azure.mgmt.cosmosdb.models.UniqueKeyPolicy + :param conflict_resolution_policy: The conflict resolution policy for the container. + :type conflict_resolution_policy: ~azure.mgmt.cosmosdb.models.ConflictResolutionPolicy + :param analytical_storage_ttl: Analytical TTL. + :type analytical_storage_ttl: long + :ivar rid: A system generated property. A unique identifier. + :vartype rid: str + :ivar ts: A system generated property that denotes the last updated timestamp of the resource. + :vartype ts: float + :ivar etag: A system generated property representing the resource etag required for optimistic + concurrency control. + :vartype etag: str + :ivar self_property: A system generated property that specifies the addressable path of the + container resource. + :vartype self_property: str + """ + + _validation = { + 'id': {'required': True}, + 'rid': {'readonly': True}, + 'ts': {'readonly': True}, + 'etag': {'readonly': True}, + 'self_property': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'indexing_policy': {'key': 'indexingPolicy', 'type': 'IndexingPolicy'}, + 'partition_key': {'key': 'partitionKey', 'type': 'ContainerPartitionKey'}, + 'default_ttl': {'key': 'defaultTtl', 'type': 'int'}, + 'unique_key_policy': {'key': 'uniqueKeyPolicy', 'type': 'UniqueKeyPolicy'}, + 'conflict_resolution_policy': {'key': 'conflictResolutionPolicy', 'type': 'ConflictResolutionPolicy'}, + 'analytical_storage_ttl': {'key': 'analyticalStorageTtl', 'type': 'long'}, + 'rid': {'key': '_rid', 'type': 'str'}, + 'ts': {'key': '_ts', 'type': 'float'}, + 'etag': {'key': '_etag', 'type': 'str'}, + 'self_property': {'key': '_self', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableSqlContainerPropertiesResourceContainer, self).__init__(**kwargs) + self.id = kwargs['id'] + self.indexing_policy = kwargs.get('indexing_policy', None) + self.partition_key = kwargs.get('partition_key', None) + self.default_ttl = kwargs.get('default_ttl', None) + self.unique_key_policy = kwargs.get('unique_key_policy', None) + self.conflict_resolution_policy = kwargs.get('conflict_resolution_policy', None) + self.analytical_storage_ttl = kwargs.get('analytical_storage_ttl', None) + self.self_property = None + self.rid = None + self.ts = None + self.etag = None + self.self_property = None + + +class RestorableSqlContainersListResult(msrest.serialization.Model): + """The List operation response, that contains the SQL container events and their properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of SQL container events and their properties. + :vartype value: list[~azure.mgmt.cosmosdb.models.RestorableSqlContainerGetResult] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[RestorableSqlContainerGetResult]'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableSqlContainersListResult, self).__init__(**kwargs) + self.value = None + + +class RestorableSqlDatabaseGetResult(msrest.serialization.Model): + """An Azure Cosmos DB SQL database event. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource Identifier of the ARM resource. + :vartype id: str + :ivar name: The name of the ARM resource. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param resource: The resource of an Azure Cosmos DB SQL database event. + :type resource: ~azure.mgmt.cosmosdb.models.RestorableSqlDatabasePropertiesResource + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'resource': {'key': 'properties.resource', 'type': 'RestorableSqlDatabasePropertiesResource'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableSqlDatabaseGetResult, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.resource = kwargs.get('resource', None) + + +class RestorableSqlDatabasePropertiesResource(msrest.serialization.Model): + """The resource of an Azure Cosmos DB SQL database event. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar rid: A system generated property. A unique identifier. + :vartype rid: str + :ivar operation_type: The operation type of this database event. Possible values include: + "Create", "Replace", "Delete", "SystemOperation". + :vartype operation_type: str or ~azure.mgmt.cosmosdb.models.OperationType + :ivar event_timestamp: The time when this database event happened. + :vartype event_timestamp: str + :ivar owner_id: The name of the SQL database. + :vartype owner_id: str + :ivar owner_resource_id: The resource ID of the SQL database. + :vartype owner_resource_id: str + :param database: Cosmos DB SQL database resource object. + :type database: ~azure.mgmt.cosmosdb.models.RestorableSqlDatabasePropertiesResourceDatabase + """ + + _validation = { + 'rid': {'readonly': True}, + 'operation_type': {'readonly': True}, + 'event_timestamp': {'readonly': True}, + 'owner_id': {'readonly': True}, + 'owner_resource_id': {'readonly': True}, + } + + _attribute_map = { + 'rid': {'key': '_rid', 'type': 'str'}, + 'operation_type': {'key': 'operationType', 'type': 'str'}, + 'event_timestamp': {'key': 'eventTimestamp', 'type': 'str'}, + 'owner_id': {'key': 'ownerId', 'type': 'str'}, + 'owner_resource_id': {'key': 'ownerResourceId', 'type': 'str'}, + 'database': {'key': 'database', 'type': 'RestorableSqlDatabasePropertiesResourceDatabase'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableSqlDatabasePropertiesResource, self).__init__(**kwargs) + self.rid = None + self.operation_type = None + self.event_timestamp = None + self.owner_id = None + self.owner_resource_id = None + self.database = kwargs.get('database', None) + + +class SqlDatabaseResource(msrest.serialization.Model): + """Cosmos DB SQL database resource object. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. Name of the Cosmos DB SQL database. + :type id: str + """ + + _validation = { + 'id': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SqlDatabaseResource, self).__init__(**kwargs) + self.id = kwargs['id'] + + +class RestorableSqlDatabasePropertiesResourceDatabase(SqlDatabaseResource, ExtendedResourceProperties): + """Cosmos DB SQL database resource object. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar rid: A system generated property. A unique identifier. + :vartype rid: str + :ivar ts: A system generated property that denotes the last updated timestamp of the resource. + :vartype ts: float + :ivar etag: A system generated property representing the resource etag required for optimistic + concurrency control. + :vartype etag: str + :param id: Required. Name of the Cosmos DB SQL database. + :type id: str + :ivar colls: A system generated property that specified the addressable path of the collections + resource. + :vartype colls: str + :ivar users: A system generated property that specifies the addressable path of the users + resource. + :vartype users: str + :ivar self_property: A system generated property that specifies the addressable path of the + database resource. + :vartype self_property: str + """ + + _validation = { + 'rid': {'readonly': True}, + 'ts': {'readonly': True}, + 'etag': {'readonly': True}, + 'id': {'required': True}, + 'colls': {'readonly': True}, + 'users': {'readonly': True}, + 'self_property': {'readonly': True}, + } + + _attribute_map = { + 'rid': {'key': '_rid', 'type': 'str'}, + 'ts': {'key': '_ts', 'type': 'float'}, + 'etag': {'key': '_etag', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'colls': {'key': '_colls', 'type': 'str'}, + 'users': {'key': '_users', 'type': 'str'}, + 'self_property': {'key': '_self', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableSqlDatabasePropertiesResourceDatabase, self).__init__(**kwargs) + self.rid = None + self.ts = None + self.etag = None + self.colls = None + self.users = None + self.self_property = None + self.id = kwargs['id'] + self.colls = None + self.users = None + self.self_property = None + + +class RestorableSqlDatabasesListResult(msrest.serialization.Model): + """The List operation response, that contains the SQL database events and their properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of SQL database events and their properties. + :vartype value: list[~azure.mgmt.cosmosdb.models.RestorableSqlDatabaseGetResult] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[RestorableSqlDatabaseGetResult]'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableSqlDatabasesListResult, self).__init__(**kwargs) + self.value = None + + +class RestorableSqlResourcesListResult(msrest.serialization.Model): + """The List operation response, that contains the restorable SQL resources. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of restorable SQL resources, including the database and collection names. + :vartype value: list[~azure.mgmt.cosmosdb.models.DatabaseRestoreResource] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[DatabaseRestoreResource]'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableSqlResourcesListResult, self).__init__(**kwargs) + self.value = None + + +class RestoreParameters(msrest.serialization.Model): + """Parameters to indicate the information about the restore. + + :param restore_mode: Describes the mode of the restore. Possible values include: "PointInTime". + :type restore_mode: str or ~azure.mgmt.cosmosdb.models.RestoreMode + :param restore_source: The id of the restorable database account from which the restore has to + be initiated. For example: + /subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts/{restorableDatabaseAccountName}. + :type restore_source: str + :param restore_timestamp_in_utc: Time to which the account has to be restored (ISO-8601 + format). + :type restore_timestamp_in_utc: ~datetime.datetime + :param databases_to_restore: List of specific databases available for restore. + :type databases_to_restore: list[~azure.mgmt.cosmosdb.models.DatabaseRestoreResource] + """ + + _attribute_map = { + 'restore_mode': {'key': 'restoreMode', 'type': 'str'}, + 'restore_source': {'key': 'restoreSource', 'type': 'str'}, + 'restore_timestamp_in_utc': {'key': 'restoreTimestampInUtc', 'type': 'iso-8601'}, + 'databases_to_restore': {'key': 'databasesToRestore', 'type': '[DatabaseRestoreResource]'}, + } + + def __init__( + self, + **kwargs + ): + super(RestoreParameters, self).__init__(**kwargs) + self.restore_mode = kwargs.get('restore_mode', None) + self.restore_source = kwargs.get('restore_source', None) + self.restore_timestamp_in_utc = kwargs.get('restore_timestamp_in_utc', None) + self.databases_to_restore = kwargs.get('databases_to_restore', None) + + +class RestoreReqeustDatabaseAccountCreateUpdateProperties(DatabaseAccountCreateUpdateProperties): + """Properties to restore Azure Cosmos DB database account. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :param consistency_policy: The consistency policy for the Cosmos DB account. + :type consistency_policy: ~azure.mgmt.cosmosdb.models.ConsistencyPolicy + :param locations: Required. An array that contains the georeplication locations enabled for the + Cosmos DB account. + :type locations: list[~azure.mgmt.cosmosdb.models.Location] + :ivar database_account_offer_type: Required. The offer type for the database. Default value: + "Standard". + :vartype database_account_offer_type: str + :param ip_rules: List of IpRules. + :type ip_rules: list[~azure.mgmt.cosmosdb.models.IpAddressOrRange] + :param is_virtual_network_filter_enabled: Flag to indicate whether to enable/disable Virtual + Network ACL rules. + :type is_virtual_network_filter_enabled: bool + :param enable_automatic_failover: Enables automatic failover of the write region in the rare + event that the region is unavailable due to an outage. Automatic failover will result in a new + write region for the account and is chosen based on the failover priorities configured for the + account. + :type enable_automatic_failover: bool + :param capabilities: List of Cosmos DB capabilities for the account. + :type capabilities: list[~azure.mgmt.cosmosdb.models.Capability] + :param virtual_network_rules: List of Virtual Network ACL rules configured for the Cosmos DB + account. + :type virtual_network_rules: list[~azure.mgmt.cosmosdb.models.VirtualNetworkRule] + :param enable_multiple_write_locations: Enables the account to write in multiple locations. + :type enable_multiple_write_locations: bool + :param enable_cassandra_connector: Enables the cassandra connector on the Cosmos DB C* account. + :type enable_cassandra_connector: bool + :param connector_offer: The cassandra connector offer type for the Cosmos DB database C* + account. Possible values include: "Small". + :type connector_offer: str or ~azure.mgmt.cosmosdb.models.ConnectorOffer + :param disable_key_based_metadata_write_access: Disable write operations on metadata resources + (databases, containers, throughput) via account keys. + :type disable_key_based_metadata_write_access: bool + :param key_vault_key_uri: The URI of the key vault. + :type key_vault_key_uri: str + :param default_identity: The default identity for accessing key vault used in features like + customer managed keys. The default identity needs to be explicitly set by the users. It can be + "FirstPartyIdentity", "SystemAssignedIdentity" and more. + :type default_identity: str + :param public_network_access: Whether requests from Public Network are allowed. Possible values + include: "Enabled", "Disabled". + :type public_network_access: str or ~azure.mgmt.cosmosdb.models.PublicNetworkAccess + :param enable_free_tier: Flag to indicate whether Free Tier is enabled. + :type enable_free_tier: bool + :param api_properties: API specific properties. Currently, supported only for MongoDB API. + :type api_properties: ~azure.mgmt.cosmosdb.models.ApiProperties + :param enable_analytical_storage: Flag to indicate whether to enable storage analytics. + :type enable_analytical_storage: bool + :param create_mode: Required. Enum to indicate the mode of account creation.Constant filled by + server. Possible values include: "Default", "Restore". Default value: "Default". + :type create_mode: str or ~azure.mgmt.cosmosdb.models.CreateMode + :param backup_policy: The object representing the policy for taking backups on an account. + :type backup_policy: ~azure.mgmt.cosmosdb.models.BackupPolicy + :param cors: The CORS policy for the Cosmos DB database account. + :type cors: list[~azure.mgmt.cosmosdb.models.CorsPolicy] + :param network_acl_bypass: Indicates what services are allowed to bypass firewall checks. + Possible values include: "None", "AzureServices". + :type network_acl_bypass: str or ~azure.mgmt.cosmosdb.models.NetworkAclBypass + :param network_acl_bypass_resource_ids: An array that contains the Resource Ids for Network Acl + Bypass for the Cosmos DB account. + :type network_acl_bypass_resource_ids: list[str] + :param restore_parameters: Parameters to indicate the information about the restore. + :type restore_parameters: ~azure.mgmt.cosmosdb.models.RestoreParameters + """ + + _validation = { + 'locations': {'required': True}, + 'database_account_offer_type': {'required': True, 'constant': True}, + 'create_mode': {'required': True}, + } + + _attribute_map = { + 'consistency_policy': {'key': 'consistencyPolicy', 'type': 'ConsistencyPolicy'}, + 'locations': {'key': 'locations', 'type': '[Location]'}, + 'database_account_offer_type': {'key': 'databaseAccountOfferType', 'type': 'str'}, + 'ip_rules': {'key': 'ipRules', 'type': '[IpAddressOrRange]'}, + 'is_virtual_network_filter_enabled': {'key': 'isVirtualNetworkFilterEnabled', 'type': 'bool'}, + 'enable_automatic_failover': {'key': 'enableAutomaticFailover', 'type': 'bool'}, + 'capabilities': {'key': 'capabilities', 'type': '[Capability]'}, + 'virtual_network_rules': {'key': 'virtualNetworkRules', 'type': '[VirtualNetworkRule]'}, + 'enable_multiple_write_locations': {'key': 'enableMultipleWriteLocations', 'type': 'bool'}, + 'enable_cassandra_connector': {'key': 'enableCassandraConnector', 'type': 'bool'}, + 'connector_offer': {'key': 'connectorOffer', 'type': 'str'}, + 'disable_key_based_metadata_write_access': {'key': 'disableKeyBasedMetadataWriteAccess', 'type': 'bool'}, + 'key_vault_key_uri': {'key': 'keyVaultKeyUri', 'type': 'str'}, + 'default_identity': {'key': 'defaultIdentity', 'type': 'str'}, + 'public_network_access': {'key': 'publicNetworkAccess', 'type': 'str'}, + 'enable_free_tier': {'key': 'enableFreeTier', 'type': 'bool'}, + 'api_properties': {'key': 'apiProperties', 'type': 'ApiProperties'}, + 'enable_analytical_storage': {'key': 'enableAnalyticalStorage', 'type': 'bool'}, + 'create_mode': {'key': 'createMode', 'type': 'str'}, + 'backup_policy': {'key': 'backupPolicy', 'type': 'BackupPolicy'}, + 'cors': {'key': 'cors', 'type': '[CorsPolicy]'}, + 'network_acl_bypass': {'key': 'networkAclBypass', 'type': 'str'}, + 'network_acl_bypass_resource_ids': {'key': 'networkAclBypassResourceIds', 'type': '[str]'}, + 'restore_parameters': {'key': 'restoreParameters', 'type': 'RestoreParameters'}, + } + + database_account_offer_type = "Standard" + + def __init__( + self, + **kwargs + ): + super(RestoreReqeustDatabaseAccountCreateUpdateProperties, self).__init__(**kwargs) + self.create_mode = 'Restore' # type: str + self.restore_parameters = kwargs.get('restore_parameters', None) + + +class SeedNode(msrest.serialization.Model): + """SeedNode. + + :param ip_address: IP address of this seed node. + :type ip_address: str + """ + + _attribute_map = { + 'ip_address': {'key': 'ipAddress', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SeedNode, self).__init__(**kwargs) + self.ip_address = kwargs.get('ip_address', None) + + +class ServiceResource(ARMProxyResource): + """Properties for the database account. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource identifier of the database account. + :vartype id: str + :ivar name: The name of the database account. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param properties: Services response resource. + :type properties: ~azure.mgmt.cosmosdb.models.ServiceResourceProperties + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'ServiceResourceProperties'}, + } + + def __init__( + self, + **kwargs + ): + super(ServiceResource, self).__init__(**kwargs) + self.properties = kwargs.get('properties', None) + + +class ServiceResourceListResult(msrest.serialization.Model): + """The List operation response, that contains the Service Resource and their properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of Service Resource and their properties. + :vartype value: list[~azure.mgmt.cosmosdb.models.ServiceResource] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ServiceResource]'}, + } + + def __init__( + self, + **kwargs + ): + super(ServiceResourceListResult, self).__init__(**kwargs) + self.value = None + + +class SpatialSpec(msrest.serialization.Model): + """SpatialSpec. + + :param path: The path for which the indexing behavior applies to. Index paths typically start + with root and end with wildcard (/path/*). + :type path: str + :param types: List of path's spatial type. + :type types: list[str or ~azure.mgmt.cosmosdb.models.SpatialType] + """ + + _attribute_map = { + 'path': {'key': 'path', 'type': 'str'}, + 'types': {'key': 'types', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(SpatialSpec, self).__init__(**kwargs) + self.path = kwargs.get('path', None) + self.types = kwargs.get('types', None) + + +class SqlContainerCreateUpdateParameters(ARMResourceProperties): + """Parameters to create and update Cosmos DB container. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: The unique resource identifier of the ARM resource. + :vartype id: str + :ivar name: The name of the ARM resource. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param location: The location of the resource group to which the resource belongs. + :type location: str + :param tags: A set of tags. Tags are a list of key-value pairs that describe the resource. + These tags can be used in viewing and grouping this resource (across resource groups). A + maximum of 15 tags can be provided for a resource. Each tag must have a key no greater than 128 + characters and value no greater than 256 characters. For example, the default experience for a + template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values + also include "Table", "Graph", "DocumentDB", and "MongoDB". + :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity + :param resource: Required. The standard JSON format of a container. + :type resource: ~azure.mgmt.cosmosdb.models.SqlContainerResource + :param options: A key-value pair of options to be applied for the request. This corresponds to the headers sent with the request. :type options: ~azure.mgmt.cosmosdb.models.CreateUpdateOptions """ @@ -4457,6 +6570,7 @@ class SqlContainerCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'SqlContainerResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -4492,58 +6606,6 @@ def __init__( super(SqlContainerGetPropertiesOptions, self).__init__(**kwargs) -class SqlContainerResource(msrest.serialization.Model): - """Cosmos DB SQL container resource object. - - All required parameters must be populated in order to send to Azure. - - :param id: Required. Name of the Cosmos DB SQL container. - :type id: str - :param indexing_policy: The configuration of the indexing policy. By default, the indexing is - automatic for all document paths within the container. - :type indexing_policy: ~azure.mgmt.cosmosdb.models.IndexingPolicy - :param partition_key: The configuration of the partition key to be used for partitioning data - into multiple partitions. - :type partition_key: ~azure.mgmt.cosmosdb.models.ContainerPartitionKey - :param default_ttl: Default time to live. - :type default_ttl: int - :param unique_key_policy: The unique key policy configuration for specifying uniqueness - constraints on documents in the collection in the Azure Cosmos DB service. - :type unique_key_policy: ~azure.mgmt.cosmosdb.models.UniqueKeyPolicy - :param conflict_resolution_policy: The conflict resolution policy for the container. - :type conflict_resolution_policy: ~azure.mgmt.cosmosdb.models.ConflictResolutionPolicy - :param analytical_storage_ttl: Analytical TTL. - :type analytical_storage_ttl: long - """ - - _validation = { - 'id': {'required': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'indexing_policy': {'key': 'indexingPolicy', 'type': 'IndexingPolicy'}, - 'partition_key': {'key': 'partitionKey', 'type': 'ContainerPartitionKey'}, - 'default_ttl': {'key': 'defaultTtl', 'type': 'int'}, - 'unique_key_policy': {'key': 'uniqueKeyPolicy', 'type': 'UniqueKeyPolicy'}, - 'conflict_resolution_policy': {'key': 'conflictResolutionPolicy', 'type': 'ConflictResolutionPolicy'}, - 'analytical_storage_ttl': {'key': 'analyticalStorageTtl', 'type': 'long'}, - } - - def __init__( - self, - **kwargs - ): - super(SqlContainerResource, self).__init__(**kwargs) - self.id = kwargs['id'] - self.indexing_policy = kwargs.get('indexing_policy', None) - self.partition_key = kwargs.get('partition_key', None) - self.default_ttl = kwargs.get('default_ttl', None) - self.unique_key_policy = kwargs.get('unique_key_policy', None) - self.conflict_resolution_policy = kwargs.get('conflict_resolution_policy', None) - self.analytical_storage_ttl = kwargs.get('analytical_storage_ttl', None) - - class SqlContainerGetPropertiesResource(ExtendedResourceProperties, SqlContainerResource): """SqlContainerGetPropertiesResource. @@ -4634,17 +6696,18 @@ class SqlContainerGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.SqlContainerGetPropertiesResource - :ivar options: Cosmos DB options resource object. - :vartype options: ~azure.mgmt.cosmosdb.models.OptionsResource + :param options: + :type options: ~azure.mgmt.cosmosdb.models.SqlContainerGetPropertiesOptions """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'options': {'readonly': True}, } _attribute_map = { @@ -4653,8 +6716,9 @@ class SqlContainerGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'SqlContainerGetPropertiesResource'}, - 'options': {'key': 'properties.options', 'type': 'OptionsResource'}, + 'options': {'key': 'properties.options', 'type': 'SqlContainerGetPropertiesOptions'}, } def __init__( @@ -4663,7 +6727,7 @@ def __init__( ): super(SqlContainerGetResults, self).__init__(**kwargs) self.resource = kwargs.get('resource', None) - self.options = None + self.options = kwargs.get('options', None) class SqlContainerListResult(msrest.serialization.Model): @@ -4713,6 +6777,8 @@ class SqlDatabaseCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a SQL database. :type resource: ~azure.mgmt.cosmosdb.models.SqlDatabaseResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -4733,6 +6799,7 @@ class SqlDatabaseCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'SqlDatabaseResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -4768,31 +6835,6 @@ def __init__( super(SqlDatabaseGetPropertiesOptions, self).__init__(**kwargs) -class SqlDatabaseResource(msrest.serialization.Model): - """Cosmos DB SQL database resource object. - - All required parameters must be populated in order to send to Azure. - - :param id: Required. Name of the Cosmos DB SQL database. - :type id: str - """ - - _validation = { - 'id': {'required': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(SqlDatabaseResource, self).__init__(**kwargs) - self.id = kwargs['id'] - - class SqlDatabaseGetPropertiesResource(SqlDatabaseResource, ExtendedResourceProperties): """SqlDatabaseGetPropertiesResource. @@ -4868,17 +6910,18 @@ class SqlDatabaseGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.SqlDatabaseGetPropertiesResource - :ivar options: Cosmos DB options resource object. - :vartype options: ~azure.mgmt.cosmosdb.models.OptionsResource + :param options: + :type options: ~azure.mgmt.cosmosdb.models.SqlDatabaseGetPropertiesOptions """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'options': {'readonly': True}, } _attribute_map = { @@ -4887,8 +6930,9 @@ class SqlDatabaseGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'SqlDatabaseGetPropertiesResource'}, - 'options': {'key': 'properties.options', 'type': 'OptionsResource'}, + 'options': {'key': 'properties.options', 'type': 'SqlDatabaseGetPropertiesOptions'}, } def __init__( @@ -4897,7 +6941,7 @@ def __init__( ): super(SqlDatabaseGetResults, self).__init__(**kwargs) self.resource = kwargs.get('resource', None) - self.options = None + self.options = kwargs.get('options', None) class SqlDatabaseListResult(msrest.serialization.Model): @@ -4925,6 +6969,340 @@ def __init__( self.value = None +class SqlDedicatedGatewayRegionalServiceResource(RegionalServiceResource): + """Resource for a regional service location. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar name: The regional service name. + :vartype name: str + :ivar location: The location name. + :vartype location: str + :ivar status: Describes the status of a service. Possible values include: "Creating", + "Running", "Updating", "Deleting", "Error", "Stopped". + :vartype status: str or ~azure.mgmt.cosmosdb.models.ServiceStatus + :ivar sql_dedicated_gateway_endpoint: The regional endpoint for SqlDedicatedGateway. + :vartype sql_dedicated_gateway_endpoint: str + """ + + _validation = { + 'name': {'readonly': True}, + 'location': {'readonly': True}, + 'status': {'readonly': True}, + 'sql_dedicated_gateway_endpoint': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'sql_dedicated_gateway_endpoint': {'key': 'sqlDedicatedGatewayEndpoint', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SqlDedicatedGatewayRegionalServiceResource, self).__init__(**kwargs) + self.sql_dedicated_gateway_endpoint = None + + +class SqlDedicatedGatewayServiceResource(msrest.serialization.Model): + """Describes the service response property for SqlDedicatedGateway. + + :param properties: Properties for SqlDedicatedGatewayServiceResource. + :type properties: ~azure.mgmt.cosmosdb.models.SqlDedicatedGatewayServiceResourceProperties + """ + + _attribute_map = { + 'properties': {'key': 'properties', 'type': 'SqlDedicatedGatewayServiceResourceProperties'}, + } + + def __init__( + self, + **kwargs + ): + super(SqlDedicatedGatewayServiceResource, self).__init__(**kwargs) + self.properties = kwargs.get('properties', None) + + +class SqlDedicatedGatewayServiceResourceProperties(ServiceResourceProperties): + """Properties for SqlDedicatedGatewayServiceResource. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :param additional_properties: Unmatched properties from the message are deserialized to this + collection. + :type additional_properties: dict[str, object] + :ivar creation_time: Time of the last state change (ISO-8601 format). + :vartype creation_time: ~datetime.datetime + :param instance_size: Instance type for the service. Possible values include: "Cosmos.D4s", + "Cosmos.D8s", "Cosmos.D16s". + :type instance_size: str or ~azure.mgmt.cosmosdb.models.ServiceSize + :param instance_count: Instance count for the service. + :type instance_count: int + :param service_type: Required. ServiceType for the service.Constant filled by server. Possible + values include: "SqlDedicatedGateway", "DataTransfer". + :type service_type: str or ~azure.mgmt.cosmosdb.models.ServiceType + :ivar status: Describes the status of a service. Possible values include: "Creating", + "Running", "Updating", "Deleting", "Error", "Stopped". + :vartype status: str or ~azure.mgmt.cosmosdb.models.ServiceStatus + :param sql_dedicated_gateway_endpoint: SqlDedicatedGateway endpoint for the service. + :type sql_dedicated_gateway_endpoint: str + :ivar locations: An array that contains all of the locations for the service. + :vartype locations: + list[~azure.mgmt.cosmosdb.models.SqlDedicatedGatewayRegionalServiceResource] + """ + + _validation = { + 'creation_time': {'readonly': True}, + 'instance_count': {'minimum': 0}, + 'service_type': {'required': True}, + 'status': {'readonly': True}, + 'locations': {'readonly': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'instance_size': {'key': 'instanceSize', 'type': 'str'}, + 'instance_count': {'key': 'instanceCount', 'type': 'int'}, + 'service_type': {'key': 'serviceType', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'sql_dedicated_gateway_endpoint': {'key': 'sqlDedicatedGatewayEndpoint', 'type': 'str'}, + 'locations': {'key': 'locations', 'type': '[SqlDedicatedGatewayRegionalServiceResource]'}, + } + + def __init__( + self, + **kwargs + ): + super(SqlDedicatedGatewayServiceResourceProperties, self).__init__(**kwargs) + self.service_type = 'SqlDedicatedGatewayServiceResourceProperties' # type: str + self.sql_dedicated_gateway_endpoint = kwargs.get('sql_dedicated_gateway_endpoint', None) + self.locations = None + + +class SqlRoleAssignmentCreateUpdateParameters(msrest.serialization.Model): + """Parameters to create and update an Azure Cosmos DB SQL Role Assignment. + + :param role_definition_id: The unique identifier for the associated Role Definition. + :type role_definition_id: str + :param scope: The data plane resource path for which access is being granted through this Role + Assignment. + :type scope: str + :param principal_id: The unique identifier for the associated AAD principal in the AAD graph to + which access is being granted through this Role Assignment. Tenant ID for the principal is + inferred using the tenant associated with the subscription. + :type principal_id: str + """ + + _attribute_map = { + 'role_definition_id': {'key': 'properties.roleDefinitionId', 'type': 'str'}, + 'scope': {'key': 'properties.scope', 'type': 'str'}, + 'principal_id': {'key': 'properties.principalId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SqlRoleAssignmentCreateUpdateParameters, self).__init__(**kwargs) + self.role_definition_id = kwargs.get('role_definition_id', None) + self.scope = kwargs.get('scope', None) + self.principal_id = kwargs.get('principal_id', None) + + +class SqlRoleAssignmentGetResults(ARMProxyResource): + """An Azure Cosmos DB Role Assignment. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource identifier of the database account. + :vartype id: str + :ivar name: The name of the database account. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param role_definition_id: The unique identifier for the associated Role Definition. + :type role_definition_id: str + :param scope: The data plane resource path for which access is being granted through this Role + Assignment. + :type scope: str + :param principal_id: The unique identifier for the associated AAD principal in the AAD graph to + which access is being granted through this Role Assignment. Tenant ID for the principal is + inferred using the tenant associated with the subscription. + :type principal_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'role_definition_id': {'key': 'properties.roleDefinitionId', 'type': 'str'}, + 'scope': {'key': 'properties.scope', 'type': 'str'}, + 'principal_id': {'key': 'properties.principalId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SqlRoleAssignmentGetResults, self).__init__(**kwargs) + self.role_definition_id = kwargs.get('role_definition_id', None) + self.scope = kwargs.get('scope', None) + self.principal_id = kwargs.get('principal_id', None) + + +class SqlRoleAssignmentListResult(msrest.serialization.Model): + """The relevant Role Assignments. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of Role Assignments and their properties. + :vartype value: list[~azure.mgmt.cosmosdb.models.SqlRoleAssignmentGetResults] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SqlRoleAssignmentGetResults]'}, + } + + def __init__( + self, + **kwargs + ): + super(SqlRoleAssignmentListResult, self).__init__(**kwargs) + self.value = None + + +class SqlRoleDefinitionCreateUpdateParameters(msrest.serialization.Model): + """Parameters to create and update an Azure Cosmos DB SQL Role Definition. + + :param role_name: A user-friendly name for the Role Definition. Must be unique for the database + account. + :type role_name: str + :param type: Indicates whether the Role Definition was built-in or user created. Possible + values include: "BuiltInRole", "CustomRole". + :type type: str or ~azure.mgmt.cosmosdb.models.RoleDefinitionType + :param assignable_scopes: A set of fully qualified Scopes at or below which Role Assignments + may be created using this Role Definition. This will allow application of this Role Definition + on the entire database account or any underlying Database / Collection. Must have at least one + element. Scopes higher than Database account are not enforceable as assignable Scopes. Note + that resources referenced in assignable Scopes need not exist. + :type assignable_scopes: list[str] + :param permissions: The set of operations allowed through this Role Definition. + :type permissions: list[~azure.mgmt.cosmosdb.models.Permission] + """ + + _attribute_map = { + 'role_name': {'key': 'properties.roleName', 'type': 'str'}, + 'type': {'key': 'properties.type', 'type': 'str'}, + 'assignable_scopes': {'key': 'properties.assignableScopes', 'type': '[str]'}, + 'permissions': {'key': 'properties.permissions', 'type': '[Permission]'}, + } + + def __init__( + self, + **kwargs + ): + super(SqlRoleDefinitionCreateUpdateParameters, self).__init__(**kwargs) + self.role_name = kwargs.get('role_name', None) + self.type = kwargs.get('type', None) + self.assignable_scopes = kwargs.get('assignable_scopes', None) + self.permissions = kwargs.get('permissions', None) + + +class SqlRoleDefinitionGetResults(ARMProxyResource): + """An Azure Cosmos DB SQL Role Definition. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource identifier of the database account. + :vartype id: str + :ivar name: The name of the database account. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param role_name: A user-friendly name for the Role Definition. Must be unique for the database + account. + :type role_name: str + :param type_properties_type: Indicates whether the Role Definition was built-in or user + created. Possible values include: "BuiltInRole", "CustomRole". + :type type_properties_type: str or ~azure.mgmt.cosmosdb.models.RoleDefinitionType + :param assignable_scopes: A set of fully qualified Scopes at or below which Role Assignments + may be created using this Role Definition. This will allow application of this Role Definition + on the entire database account or any underlying Database / Collection. Must have at least one + element. Scopes higher than Database account are not enforceable as assignable Scopes. Note + that resources referenced in assignable Scopes need not exist. + :type assignable_scopes: list[str] + :param permissions: The set of operations allowed through this Role Definition. + :type permissions: list[~azure.mgmt.cosmosdb.models.Permission] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'role_name': {'key': 'properties.roleName', 'type': 'str'}, + 'type_properties_type': {'key': 'properties.type', 'type': 'str'}, + 'assignable_scopes': {'key': 'properties.assignableScopes', 'type': '[str]'}, + 'permissions': {'key': 'properties.permissions', 'type': '[Permission]'}, + } + + def __init__( + self, + **kwargs + ): + super(SqlRoleDefinitionGetResults, self).__init__(**kwargs) + self.role_name = kwargs.get('role_name', None) + self.type_properties_type = kwargs.get('type_properties_type', None) + self.assignable_scopes = kwargs.get('assignable_scopes', None) + self.permissions = kwargs.get('permissions', None) + + +class SqlRoleDefinitionListResult(msrest.serialization.Model): + """The relevant Role Definitions. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of Role Definitions and their properties. + :vartype value: list[~azure.mgmt.cosmosdb.models.SqlRoleDefinitionGetResults] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SqlRoleDefinitionGetResults]'}, + } + + def __init__( + self, + **kwargs + ): + super(SqlRoleDefinitionListResult, self).__init__(**kwargs) + self.value = None + + class SqlStoredProcedureCreateUpdateParameters(ARMResourceProperties): """Parameters to create and update Cosmos DB storedProcedure. @@ -4947,6 +7325,8 @@ class SqlStoredProcedureCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a storedProcedure. :type resource: ~azure.mgmt.cosmosdb.models.SqlStoredProcedureResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -4967,6 +7347,7 @@ class SqlStoredProcedureCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'SqlStoredProcedureResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -5076,6 +7457,8 @@ class SqlStoredProcedureGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.SqlStoredProcedureGetPropertiesResource """ @@ -5092,6 +7475,7 @@ class SqlStoredProcedureGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'SqlStoredProcedureGetPropertiesResource'}, } @@ -5150,6 +7534,8 @@ class SqlTriggerCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a trigger. :type resource: ~azure.mgmt.cosmosdb.models.SqlTriggerResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -5170,6 +7556,7 @@ class SqlTriggerCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'SqlTriggerResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -5297,6 +7684,8 @@ class SqlTriggerGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.SqlTriggerGetPropertiesResource """ @@ -5313,6 +7702,7 @@ class SqlTriggerGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'SqlTriggerGetPropertiesResource'}, } @@ -5371,6 +7761,8 @@ class SqlUserDefinedFunctionCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a userDefinedFunction. :type resource: ~azure.mgmt.cosmosdb.models.SqlUserDefinedFunctionResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -5391,6 +7783,7 @@ class SqlUserDefinedFunctionCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'SqlUserDefinedFunctionResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -5500,6 +7893,8 @@ class SqlUserDefinedFunctionGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.SqlUserDefinedFunctionGetPropertiesResource """ @@ -5516,6 +7911,7 @@ class SqlUserDefinedFunctionGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'SqlUserDefinedFunctionGetPropertiesResource'}, } @@ -5552,6 +7948,47 @@ def __init__( self.value = None +class SystemData(msrest.serialization.Model): + """Metadata pertaining to creation and last modification of the resource. + + :param created_by: The identity that created the resource. + :type created_by: str + :param created_by_type: The type of identity that created the resource. Possible values + include: "User", "Application", "ManagedIdentity", "Key". + :type created_by_type: str or ~azure.mgmt.cosmosdb.models.CreatedByType + :param created_at: The timestamp of resource creation (UTC). + :type created_at: ~datetime.datetime + :param last_modified_by: The identity that last modified the resource. + :type last_modified_by: str + :param last_modified_by_type: The type of identity that last modified the resource. Possible + values include: "User", "Application", "ManagedIdentity", "Key". + :type last_modified_by_type: str or ~azure.mgmt.cosmosdb.models.CreatedByType + :param last_modified_at: The timestamp of resource last modification (UTC). + :type last_modified_at: ~datetime.datetime + """ + + _attribute_map = { + 'created_by': {'key': 'createdBy', 'type': 'str'}, + 'created_by_type': {'key': 'createdByType', 'type': 'str'}, + 'created_at': {'key': 'createdAt', 'type': 'iso-8601'}, + 'last_modified_by': {'key': 'lastModifiedBy', 'type': 'str'}, + 'last_modified_by_type': {'key': 'lastModifiedByType', 'type': 'str'}, + 'last_modified_at': {'key': 'lastModifiedAt', 'type': 'iso-8601'}, + } + + def __init__( + self, + **kwargs + ): + super(SystemData, self).__init__(**kwargs) + self.created_by = kwargs.get('created_by', None) + self.created_by_type = kwargs.get('created_by_type', None) + self.created_at = kwargs.get('created_at', None) + self.last_modified_by = kwargs.get('last_modified_by', None) + self.last_modified_by_type = kwargs.get('last_modified_by_type', None) + self.last_modified_at = kwargs.get('last_modified_at', None) + + class TableCreateUpdateParameters(ARMResourceProperties): """Parameters to create and update Cosmos DB Table. @@ -5574,6 +8011,8 @@ class TableCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a Table. :type resource: ~azure.mgmt.cosmosdb.models.TableResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -5594,6 +8033,7 @@ class TableCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'TableResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -5717,17 +8157,18 @@ class TableGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.TableGetPropertiesResource - :ivar options: Cosmos DB options resource object. - :vartype options: ~azure.mgmt.cosmosdb.models.OptionsResource + :param options: + :type options: ~azure.mgmt.cosmosdb.models.TableGetPropertiesOptions """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'options': {'readonly': True}, } _attribute_map = { @@ -5736,8 +8177,9 @@ class TableGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'TableGetPropertiesResource'}, - 'options': {'key': 'properties.options', 'type': 'OptionsResource'}, + 'options': {'key': 'properties.options', 'type': 'TableGetPropertiesOptions'}, } def __init__( @@ -5746,7 +8188,7 @@ def __init__( ): super(TableGetResults, self).__init__(**kwargs) self.resource = kwargs.get('resource', None) - self.options = None + self.options = kwargs.get('options', None) class TableListResult(msrest.serialization.Model): @@ -5914,6 +8356,8 @@ class ThroughputSettingsGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.ThroughputSettingsGetPropertiesResource """ @@ -5930,6 +8374,7 @@ class ThroughputSettingsGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'ThroughputSettingsGetPropertiesResource'}, } @@ -5963,6 +8408,8 @@ class ThroughputSettingsUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a resource throughput. :type resource: ~azure.mgmt.cosmosdb.models.ThroughputSettingsResource """ @@ -5980,6 +8427,7 @@ class ThroughputSettingsUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'ThroughputSettingsResource'}, } diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/models/_models_py3.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/models/_models_py3.py index 30845fa7911c..21995cb34671 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/models/_models_py3.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/models/_models_py3.py @@ -6,6 +6,7 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +import datetime from typing import Dict, List, Optional, Union from azure.core.exceptions import HttpResponseError @@ -91,6 +92,8 @@ class ARMResourceProperties(msrest.serialization.Model): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity """ _validation = { @@ -105,6 +108,7 @@ class ARMResourceProperties(msrest.serialization.Model): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, } def __init__( @@ -112,6 +116,7 @@ def __init__( *, location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, **kwargs ): super(ARMResourceProperties, self).__init__(**kwargs) @@ -120,6 +125,7 @@ def __init__( self.type = None self.location = location self.tags = tags + self.identity = identity class AutoscaleSettings(msrest.serialization.Model): @@ -186,8 +192,8 @@ def __init__( class AutoUpgradePolicyResource(msrest.serialization.Model): """Cosmos DB resource auto-upgrade policy. - :param throughput_policy: Represents throughput policy which service must adhere to for auto- - upgrade. + :param throughput_policy: Represents throughput policy which service must adhere to for + auto-upgrade. :type throughput_policy: ~azure.mgmt.cosmosdb.models.ThroughputPolicyResource """ @@ -205,6 +211,31 @@ def __init__( self.throughput_policy = throughput_policy +class BackupInformation(msrest.serialization.Model): + """Backup information of a resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar continuous_backup_information: Continuous backup description. + :vartype continuous_backup_information: ~azure.mgmt.cosmosdb.models.ContinuousBackupInformation + """ + + _validation = { + 'continuous_backup_information': {'readonly': True}, + } + + _attribute_map = { + 'continuous_backup_information': {'key': 'continuousBackupInformation', 'type': 'ContinuousBackupInformation'}, + } + + def __init__( + self, + **kwargs + ): + super(BackupInformation, self).__init__(**kwargs) + self.continuous_backup_information = None + + class BackupPolicy(msrest.serialization.Model): """The object representing the policy for taking backups on an account. @@ -238,6 +269,65 @@ def __init__( self.type = None # type: Optional[str] +class BackupResource(ARMProxyResource): + """A restorable backup of a Cassandra cluster. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource identifier of the database account. + :vartype id: str + :ivar name: The name of the database account. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param properties: + :type properties: ~azure.mgmt.cosmosdb.models.BackupResourceProperties + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'BackupResourceProperties'}, + } + + def __init__( + self, + *, + properties: Optional["BackupResourceProperties"] = None, + **kwargs + ): + super(BackupResource, self).__init__(**kwargs) + self.properties = properties + + +class BackupResourceProperties(msrest.serialization.Model): + """BackupResourceProperties. + + :param timestamp: The time this backup was taken, formatted like 2021-01-21T17:35:21. + :type timestamp: ~datetime.datetime + """ + + _attribute_map = { + 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, + } + + def __init__( + self, + *, + timestamp: Optional[datetime.datetime] = None, + **kwargs + ): + super(BackupResourceProperties, self).__init__(**kwargs) + self.timestamp = timestamp + + class Capability(msrest.serialization.Model): """Cosmos DB capability object. @@ -282,6 +372,8 @@ class CassandraKeyspaceCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a Cassandra keyspace. :type resource: ~azure.mgmt.cosmosdb.models.CassandraKeyspaceResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -302,6 +394,7 @@ class CassandraKeyspaceCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'CassandraKeyspaceResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -312,10 +405,11 @@ def __init__( resource: "CassandraKeyspaceResource", location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, options: Optional["CreateUpdateOptions"] = None, **kwargs ): - super(CassandraKeyspaceCreateUpdateParameters, self).__init__(location=location, tags=tags, **kwargs) + super(CassandraKeyspaceCreateUpdateParameters, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource self.options = options @@ -500,17 +594,18 @@ class CassandraKeyspaceGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.CassandraKeyspaceGetPropertiesResource - :ivar options: Cosmos DB options resource object. - :vartype options: ~azure.mgmt.cosmosdb.models.OptionsResource + :param options: + :type options: ~azure.mgmt.cosmosdb.models.CassandraKeyspaceGetPropertiesOptions """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'options': {'readonly': True}, } _attribute_map = { @@ -519,8 +614,9 @@ class CassandraKeyspaceGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'CassandraKeyspaceGetPropertiesResource'}, - 'options': {'key': 'properties.options', 'type': 'OptionsResource'}, + 'options': {'key': 'properties.options', 'type': 'CassandraKeyspaceGetPropertiesOptions'}, } def __init__( @@ -528,12 +624,14 @@ def __init__( *, location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, resource: Optional["CassandraKeyspaceGetPropertiesResource"] = None, + options: Optional["CassandraKeyspaceGetPropertiesOptions"] = None, **kwargs ): - super(CassandraKeyspaceGetResults, self).__init__(location=location, tags=tags, **kwargs) + super(CassandraKeyspaceGetResults, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource - self.options = None + self.options = options class CassandraKeyspaceListResult(msrest.serialization.Model): @@ -635,6 +733,8 @@ class CassandraTableCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a Cassandra table. :type resource: ~azure.mgmt.cosmosdb.models.CassandraTableResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -655,6 +755,7 @@ class CassandraTableCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'CassandraTableResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -665,10 +766,11 @@ def __init__( resource: "CassandraTableResource", location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, options: Optional["CreateUpdateOptions"] = None, **kwargs ): - super(CassandraTableCreateUpdateParameters, self).__init__(location=location, tags=tags, **kwargs) + super(CassandraTableCreateUpdateParameters, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource self.options = options @@ -820,17 +922,18 @@ class CassandraTableGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.CassandraTableGetPropertiesResource - :ivar options: Cosmos DB options resource object. - :vartype options: ~azure.mgmt.cosmosdb.models.OptionsResource + :param options: + :type options: ~azure.mgmt.cosmosdb.models.CassandraTableGetPropertiesOptions """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'options': {'readonly': True}, } _attribute_map = { @@ -839,8 +942,9 @@ class CassandraTableGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'CassandraTableGetPropertiesResource'}, - 'options': {'key': 'properties.options', 'type': 'OptionsResource'}, + 'options': {'key': 'properties.options', 'type': 'CassandraTableGetPropertiesOptions'}, } def __init__( @@ -848,12 +952,14 @@ def __init__( *, location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, resource: Optional["CassandraTableGetPropertiesResource"] = None, + options: Optional["CassandraTableGetPropertiesOptions"] = None, **kwargs ): - super(CassandraTableGetResults, self).__init__(location=location, tags=tags, **kwargs) + super(CassandraTableGetResults, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource - self.options = None + self.options = options class CassandraTableListResult(msrest.serialization.Model): @@ -881,6 +987,27 @@ def __init__( self.value = None +class Certificate(msrest.serialization.Model): + """Certificate. + + :param pem: PEM formatted public key. + :type pem: str + """ + + _attribute_map = { + 'pem': {'key': 'pem', 'type': 'str'}, + } + + def __init__( + self, + *, + pem: Optional[str] = None, + **kwargs + ): + super(Certificate, self).__init__(**kwargs) + self.pem = pem + + class ClusterKey(msrest.serialization.Model): """Cosmos DB Cassandra table cluster key. @@ -908,6 +1035,275 @@ def __init__( self.order_by = order_by +class ClusterNodeStatus(msrest.serialization.Model): + """The status of all nodes in the cluster (as returned by 'nodetool status'). + + :param nodes: Information about nodes in the cluster (corresponds to what is returned from + nodetool info). + :type nodes: list[~azure.mgmt.cosmosdb.models.ClusterNodeStatusNodesItem] + """ + + _attribute_map = { + 'nodes': {'key': 'nodes', 'type': '[ClusterNodeStatusNodesItem]'}, + } + + def __init__( + self, + *, + nodes: Optional[List["ClusterNodeStatusNodesItem"]] = None, + **kwargs + ): + super(ClusterNodeStatus, self).__init__(**kwargs) + self.nodes = nodes + + +class ClusterNodeStatusNodesItem(msrest.serialization.Model): + """ClusterNodeStatusNodesItem. + + :param datacenter: The Cassandra data center this node resides in. + :type datacenter: str + :param status: Indicates whether the node is functioning or not. Possible values include: "Up", + "Down". + :type status: str or ~azure.mgmt.cosmosdb.models.NodeStatus + :param state: The state of the node in relation to the cluster. Possible values include: + "Normal", "Leaving", "Joining", "Moving", "Stopped". + :type state: str or ~azure.mgmt.cosmosdb.models.NodeState + :param address: The node's URL. + :type address: str + :param load: The amount of file system data in the data directory (e.g., 47.66 KB), excluding + all content in the snapshots subdirectories. Because all SSTable data files are included, any + data that is not cleaned up (such as TTL-expired cell or tombstoned data) is counted. + :type load: str + :param tokens: List of tokens. + :type tokens: list[str] + :param owns: The percentage of the data owned by the node per datacenter times the replication + factor (e.g., 33.3, or null if the data is not available). For example, a node can own 33% of + the ring, but shows 100% if the replication factor is 3. For non-system keyspaces, the endpoint + percentage ownership information is shown. + :type owns: float + :param host_id: The network ID of the node. + :type host_id: str + :param rack: The rack this node is part of. + :type rack: str + """ + + _attribute_map = { + 'datacenter': {'key': 'datacenter', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'str'}, + 'address': {'key': 'address', 'type': 'str'}, + 'load': {'key': 'load', 'type': 'str'}, + 'tokens': {'key': 'tokens', 'type': '[str]'}, + 'owns': {'key': 'owns', 'type': 'float'}, + 'host_id': {'key': 'hostId', 'type': 'str'}, + 'rack': {'key': 'rack', 'type': 'str'}, + } + + def __init__( + self, + *, + datacenter: Optional[str] = None, + status: Optional[Union[str, "NodeStatus"]] = None, + state: Optional[Union[str, "NodeState"]] = None, + address: Optional[str] = None, + load: Optional[str] = None, + tokens: Optional[List[str]] = None, + owns: Optional[float] = None, + host_id: Optional[str] = None, + rack: Optional[str] = None, + **kwargs + ): + super(ClusterNodeStatusNodesItem, self).__init__(**kwargs) + self.datacenter = datacenter + self.status = status + self.state = state + self.address = address + self.load = load + self.tokens = tokens + self.owns = owns + self.host_id = host_id + self.rack = rack + + +class ClusterResource(ARMResourceProperties): + """Representation of a managed Cassandra cluster. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource identifier of the ARM resource. + :vartype id: str + :ivar name: The name of the ARM resource. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param location: The location of the resource group to which the resource belongs. + :type location: str + :param tags: A set of tags. Tags are a list of key-value pairs that describe the resource. + These tags can be used in viewing and grouping this resource (across resource groups). A + maximum of 15 tags can be provided for a resource. Each tag must have a key no greater than 128 + characters and value no greater than 256 characters. For example, the default experience for a + template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values + also include "Table", "Graph", "DocumentDB", and "MongoDB". + :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity + :param properties: Properties of a managed Cassandra cluster. + :type properties: ~azure.mgmt.cosmosdb.models.ClusterResourceProperties + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, + 'properties': {'key': 'properties', 'type': 'ClusterResourceProperties'}, + } + + def __init__( + self, + *, + location: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, + properties: Optional["ClusterResourceProperties"] = None, + **kwargs + ): + super(ClusterResource, self).__init__(location=location, tags=tags, identity=identity, **kwargs) + self.properties = properties + + +class ClusterResourceProperties(msrest.serialization.Model): + """Properties of a managed Cassandra cluster. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param provisioning_state: The status of the resource at the time the operation was called. + Possible values include: "Creating", "Updating", "Deleting", "Succeeded", "Failed", "Canceled". + :type provisioning_state: str or ~azure.mgmt.cosmosdb.models.ManagedCassandraProvisioningState + :param restore_from_backup_id: To create an empty cluster, omit this field or set it to null. + To restore a backup into a new cluster, set this field to the resource id of the backup. + :type restore_from_backup_id: str + :param delegated_management_subnet_id: Resource id of a subnet that this cluster's management + service should have its network interface attached to. The subnet must be routable to all + subnets that will be delegated to data centers. The resource id must be of the form + '/subscriptions/:code:``/resourceGroups/:code:``/providers/Microsoft.Network/virtualNetworks/:code:``/subnets/:code:``'. + :type delegated_management_subnet_id: str + :param cassandra_version: Which version of Cassandra should this cluster converge to running + (e.g., 3.11). When updated, the cluster may take some time to migrate to the new version. + :type cassandra_version: str + :param cluster_name_override: If you need to set the clusterName property in cassandra.yaml to + something besides the resource name of the cluster, set the value to use on this property. + :type cluster_name_override: str + :param authentication_method: Which authentication method Cassandra should use to authenticate + clients. 'None' turns off authentication, so should not be used except in emergencies. + 'Cassandra' is the default password based authentication. The default is 'Cassandra'. Possible + values include: "None", "Cassandra". + :type authentication_method: str or ~azure.mgmt.cosmosdb.models.AuthenticationMethod + :param initial_cassandra_admin_password: Initial password for clients connecting as admin to + the cluster. Should be changed after cluster creation. Returns null on GET. This field only + applies when the authenticationMethod field is 'Cassandra'. + :type initial_cassandra_admin_password: str + :param hours_between_backups: Number of hours to wait between taking a backup of the cluster. + To disable backups, set this property to 0. + :type hours_between_backups: int + :param prometheus_endpoint: Hostname or IP address where the Prometheus endpoint containing + data about the managed Cassandra nodes can be reached. + :type prometheus_endpoint: ~azure.mgmt.cosmosdb.models.SeedNode + :param repair_enabled: Should automatic repairs run on this cluster? If omitted, this is true, + and should stay true unless you are running a hybrid cluster where you are already doing your + own repairs. + :type repair_enabled: bool + :param client_certificates: List of TLS certificates used to authorize clients connecting to + the cluster. All connections are TLS encrypted whether clientCertificates is set or not, but if + clientCertificates is set, the managed Cassandra cluster will reject all connections not + bearing a TLS client certificate that can be validated from one or more of the public + certificates in this property. + :type client_certificates: list[~azure.mgmt.cosmosdb.models.Certificate] + :param external_gossip_certificates: List of TLS certificates used to authorize gossip from + unmanaged data centers. The TLS certificates of all nodes in unmanaged data centers must be + verifiable using one of the certificates provided in this property. + :type external_gossip_certificates: list[~azure.mgmt.cosmosdb.models.Certificate] + :ivar gossip_certificates: List of TLS certificates that unmanaged nodes must trust for gossip + with managed nodes. All managed nodes will present TLS client certificates that are verifiable + using one of the certificates provided in this property. + :vartype gossip_certificates: list[~azure.mgmt.cosmosdb.models.Certificate] + :param external_seed_nodes: List of IP addresses of seed nodes in unmanaged data centers. These + will be added to the seed node lists of all managed nodes. + :type external_seed_nodes: list[~azure.mgmt.cosmosdb.models.SeedNode] + :ivar seed_nodes: List of IP addresses of seed nodes in the managed data centers. These should + be added to the seed node lists of all unmanaged nodes. + :vartype seed_nodes: list[~azure.mgmt.cosmosdb.models.SeedNode] + """ + + _validation = { + 'gossip_certificates': {'readonly': True}, + 'seed_nodes': {'readonly': True}, + } + + _attribute_map = { + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'restore_from_backup_id': {'key': 'restoreFromBackupId', 'type': 'str'}, + 'delegated_management_subnet_id': {'key': 'delegatedManagementSubnetId', 'type': 'str'}, + 'cassandra_version': {'key': 'cassandraVersion', 'type': 'str'}, + 'cluster_name_override': {'key': 'clusterNameOverride', 'type': 'str'}, + 'authentication_method': {'key': 'authenticationMethod', 'type': 'str'}, + 'initial_cassandra_admin_password': {'key': 'initialCassandraAdminPassword', 'type': 'str'}, + 'hours_between_backups': {'key': 'hoursBetweenBackups', 'type': 'int'}, + 'prometheus_endpoint': {'key': 'prometheusEndpoint', 'type': 'SeedNode'}, + 'repair_enabled': {'key': 'repairEnabled', 'type': 'bool'}, + 'client_certificates': {'key': 'clientCertificates', 'type': '[Certificate]'}, + 'external_gossip_certificates': {'key': 'externalGossipCertificates', 'type': '[Certificate]'}, + 'gossip_certificates': {'key': 'gossipCertificates', 'type': '[Certificate]'}, + 'external_seed_nodes': {'key': 'externalSeedNodes', 'type': '[SeedNode]'}, + 'seed_nodes': {'key': 'seedNodes', 'type': '[SeedNode]'}, + } + + def __init__( + self, + *, + provisioning_state: Optional[Union[str, "ManagedCassandraProvisioningState"]] = None, + restore_from_backup_id: Optional[str] = None, + delegated_management_subnet_id: Optional[str] = None, + cassandra_version: Optional[str] = None, + cluster_name_override: Optional[str] = None, + authentication_method: Optional[Union[str, "AuthenticationMethod"]] = None, + initial_cassandra_admin_password: Optional[str] = None, + hours_between_backups: Optional[int] = None, + prometheus_endpoint: Optional["SeedNode"] = None, + repair_enabled: Optional[bool] = None, + client_certificates: Optional[List["Certificate"]] = None, + external_gossip_certificates: Optional[List["Certificate"]] = None, + external_seed_nodes: Optional[List["SeedNode"]] = None, + **kwargs + ): + super(ClusterResourceProperties, self).__init__(**kwargs) + self.provisioning_state = provisioning_state + self.restore_from_backup_id = restore_from_backup_id + self.delegated_management_subnet_id = delegated_management_subnet_id + self.cassandra_version = cassandra_version + self.cluster_name_override = cluster_name_override + self.authentication_method = authentication_method + self.initial_cassandra_admin_password = initial_cassandra_admin_password + self.hours_between_backups = hours_between_backups + self.prometheus_endpoint = prometheus_endpoint + self.repair_enabled = repair_enabled + self.client_certificates = client_certificates + self.external_gossip_certificates = external_gossip_certificates + self.gossip_certificates = None + self.external_seed_nodes = external_seed_nodes + self.seed_nodes = None + + class Column(msrest.serialization.Model): """Cosmos DB Cassandra table column. @@ -1115,6 +1511,48 @@ def __init__( self.system_key = None +class ContinuousBackupInformation(msrest.serialization.Model): + """Continuous backup description. + + :param latest_restorable_timestamp: The latest restorable timestamp for a resource. + :type latest_restorable_timestamp: str + """ + + _attribute_map = { + 'latest_restorable_timestamp': {'key': 'latestRestorableTimestamp', 'type': 'str'}, + } + + def __init__( + self, + *, + latest_restorable_timestamp: Optional[str] = None, + **kwargs + ): + super(ContinuousBackupInformation, self).__init__(**kwargs) + self.latest_restorable_timestamp = latest_restorable_timestamp + + +class ContinuousBackupRestoreLocation(msrest.serialization.Model): + """Properties of the regional restorable account. + + :param location: The name of the continuous backup restore location. + :type location: str + """ + + _attribute_map = { + 'location': {'key': 'location', 'type': 'str'}, + } + + def __init__( + self, + *, + location: Optional[str] = None, + **kwargs + ): + super(ContinuousBackupRestoreLocation, self).__init__(**kwargs) + self.location = location + + class ContinuousModeBackupPolicy(BackupPolicy): """The object representing continuous mode backup policy. @@ -1272,11 +1710,58 @@ class DatabaseAccountCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param kind: Indicates the type of database account. This can only be set at database account creation. Possible values include: "GlobalDocumentDB", "MongoDB", "Parse". :type kind: str or ~azure.mgmt.cosmosdb.models.DatabaseAccountKind - :param identity: Identity for the resource. - :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity + :param properties: Required. Properties to create and update Azure Cosmos DB database accounts. + :type properties: ~azure.mgmt.cosmosdb.models.DatabaseAccountCreateUpdateProperties + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'DatabaseAccountCreateUpdateProperties'}, + } + + def __init__( + self, + *, + properties: "DatabaseAccountCreateUpdateProperties", + location: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, + kind: Optional[Union[str, "DatabaseAccountKind"]] = None, + **kwargs + ): + super(DatabaseAccountCreateUpdateParameters, self).__init__(location=location, tags=tags, identity=identity, **kwargs) + self.kind = kind + self.properties = properties + + +class DatabaseAccountCreateUpdateProperties(msrest.serialization.Model): + """Properties to create and update Azure Cosmos DB database accounts. + + You probably want to use the sub-classes and not this class directly. Known + sub-classes are: DefaultRequestDatabaseAccountCreateUpdateProperties, RestoreReqeustDatabaseAccountCreateUpdateProperties. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + :param consistency_policy: The consistency policy for the Cosmos DB account. :type consistency_policy: ~azure.mgmt.cosmosdb.models.ConsistencyPolicy :param locations: Required. An array that contains the georeplication locations enabled for the @@ -1325,6 +1810,9 @@ class DatabaseAccountCreateUpdateParameters(ARMResourceProperties): :type api_properties: ~azure.mgmt.cosmosdb.models.ApiProperties :param enable_analytical_storage: Flag to indicate whether to enable storage analytics. :type enable_analytical_storage: bool + :param create_mode: Required. Enum to indicate the mode of account creation.Constant filled by + server. Possible values include: "Default", "Restore". Default value: "Default". + :type create_mode: str or ~azure.mgmt.cosmosdb.models.CreateMode :param backup_policy: The object representing the policy for taking backups on an account. :type backup_policy: ~azure.mgmt.cosmosdb.models.BackupPolicy :param cors: The CORS policy for the Cosmos DB database account. @@ -1338,43 +1826,39 @@ class DatabaseAccountCreateUpdateParameters(ARMResourceProperties): """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, 'locations': {'required': True}, 'database_account_offer_type': {'required': True, 'constant': True}, + 'create_mode': {'required': True}, + } + + _attribute_map = { + 'consistency_policy': {'key': 'consistencyPolicy', 'type': 'ConsistencyPolicy'}, + 'locations': {'key': 'locations', 'type': '[Location]'}, + 'database_account_offer_type': {'key': 'databaseAccountOfferType', 'type': 'str'}, + 'ip_rules': {'key': 'ipRules', 'type': '[IpAddressOrRange]'}, + 'is_virtual_network_filter_enabled': {'key': 'isVirtualNetworkFilterEnabled', 'type': 'bool'}, + 'enable_automatic_failover': {'key': 'enableAutomaticFailover', 'type': 'bool'}, + 'capabilities': {'key': 'capabilities', 'type': '[Capability]'}, + 'virtual_network_rules': {'key': 'virtualNetworkRules', 'type': '[VirtualNetworkRule]'}, + 'enable_multiple_write_locations': {'key': 'enableMultipleWriteLocations', 'type': 'bool'}, + 'enable_cassandra_connector': {'key': 'enableCassandraConnector', 'type': 'bool'}, + 'connector_offer': {'key': 'connectorOffer', 'type': 'str'}, + 'disable_key_based_metadata_write_access': {'key': 'disableKeyBasedMetadataWriteAccess', 'type': 'bool'}, + 'key_vault_key_uri': {'key': 'keyVaultKeyUri', 'type': 'str'}, + 'default_identity': {'key': 'defaultIdentity', 'type': 'str'}, + 'public_network_access': {'key': 'publicNetworkAccess', 'type': 'str'}, + 'enable_free_tier': {'key': 'enableFreeTier', 'type': 'bool'}, + 'api_properties': {'key': 'apiProperties', 'type': 'ApiProperties'}, + 'enable_analytical_storage': {'key': 'enableAnalyticalStorage', 'type': 'bool'}, + 'create_mode': {'key': 'createMode', 'type': 'str'}, + 'backup_policy': {'key': 'backupPolicy', 'type': 'BackupPolicy'}, + 'cors': {'key': 'cors', 'type': '[CorsPolicy]'}, + 'network_acl_bypass': {'key': 'networkAclBypass', 'type': 'str'}, + 'network_acl_bypass_resource_ids': {'key': 'networkAclBypassResourceIds', 'type': '[str]'}, } - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'location': {'key': 'location', 'type': 'str'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'kind': {'key': 'kind', 'type': 'str'}, - 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, - 'consistency_policy': {'key': 'properties.consistencyPolicy', 'type': 'ConsistencyPolicy'}, - 'locations': {'key': 'properties.locations', 'type': '[Location]'}, - 'database_account_offer_type': {'key': 'properties.databaseAccountOfferType', 'type': 'str'}, - 'ip_rules': {'key': 'properties.ipRules', 'type': '[IpAddressOrRange]'}, - 'is_virtual_network_filter_enabled': {'key': 'properties.isVirtualNetworkFilterEnabled', 'type': 'bool'}, - 'enable_automatic_failover': {'key': 'properties.enableAutomaticFailover', 'type': 'bool'}, - 'capabilities': {'key': 'properties.capabilities', 'type': '[Capability]'}, - 'virtual_network_rules': {'key': 'properties.virtualNetworkRules', 'type': '[VirtualNetworkRule]'}, - 'enable_multiple_write_locations': {'key': 'properties.enableMultipleWriteLocations', 'type': 'bool'}, - 'enable_cassandra_connector': {'key': 'properties.enableCassandraConnector', 'type': 'bool'}, - 'connector_offer': {'key': 'properties.connectorOffer', 'type': 'str'}, - 'disable_key_based_metadata_write_access': {'key': 'properties.disableKeyBasedMetadataWriteAccess', 'type': 'bool'}, - 'key_vault_key_uri': {'key': 'properties.keyVaultKeyUri', 'type': 'str'}, - 'default_identity': {'key': 'properties.defaultIdentity', 'type': 'str'}, - 'public_network_access': {'key': 'properties.publicNetworkAccess', 'type': 'str'}, - 'enable_free_tier': {'key': 'properties.enableFreeTier', 'type': 'bool'}, - 'api_properties': {'key': 'properties.apiProperties', 'type': 'ApiProperties'}, - 'enable_analytical_storage': {'key': 'properties.enableAnalyticalStorage', 'type': 'bool'}, - 'backup_policy': {'key': 'properties.backupPolicy', 'type': 'BackupPolicy'}, - 'cors': {'key': 'properties.cors', 'type': '[CorsPolicy]'}, - 'network_acl_bypass': {'key': 'properties.networkAclBypass', 'type': 'str'}, - 'network_acl_bypass_resource_ids': {'key': 'properties.networkAclBypassResourceIds', 'type': '[str]'}, + _subtype_map = { + 'create_mode': {'Default': 'DefaultRequestDatabaseAccountCreateUpdateProperties', 'Restore': 'RestoreReqeustDatabaseAccountCreateUpdateProperties'} } database_account_offer_type = "Standard" @@ -1383,10 +1867,6 @@ def __init__( self, *, locations: List["Location"], - location: Optional[str] = None, - tags: Optional[Dict[str, str]] = None, - kind: Optional[Union[str, "DatabaseAccountKind"]] = None, - identity: Optional["ManagedServiceIdentity"] = None, consistency_policy: Optional["ConsistencyPolicy"] = None, ip_rules: Optional[List["IpAddressOrRange"]] = None, is_virtual_network_filter_enabled: Optional[bool] = None, @@ -1409,9 +1889,7 @@ def __init__( network_acl_bypass_resource_ids: Optional[List[str]] = None, **kwargs ): - super(DatabaseAccountCreateUpdateParameters, self).__init__(location=location, tags=tags, **kwargs) - self.kind = kind - self.identity = identity + super(DatabaseAccountCreateUpdateProperties, self).__init__(**kwargs) self.consistency_policy = consistency_policy self.locations = locations self.ip_rules = ip_rules @@ -1429,6 +1907,7 @@ def __init__( self.enable_free_tier = enable_free_tier self.api_properties = api_properties self.enable_analytical_storage = enable_analytical_storage + self.create_mode = None # type: Optional[str] self.backup_policy = backup_policy self.cors = cors self.network_acl_bypass = network_acl_bypass @@ -1455,11 +1934,13 @@ class DatabaseAccountGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param kind: Indicates the type of database account. This can only be set at database account creation. Possible values include: "GlobalDocumentDB", "MongoDB", "Parse". :type kind: str or ~azure.mgmt.cosmosdb.models.DatabaseAccountKind - :param identity: Identity for the resource. - :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity + :ivar system_data: The system meta data relating to this resource. + :vartype system_data: ~azure.mgmt.cosmosdb.models.SystemData :ivar provisioning_state: The status of the Cosmos DB account at the time the operation was called. The status can be one of following. 'Creating' – the Cosmos DB account is being created. When an account is in Creating state, only properties that are specified as input for @@ -1529,6 +2010,13 @@ class DatabaseAccountGetResults(ARMResourceProperties): :type api_properties: ~azure.mgmt.cosmosdb.models.ApiProperties :param enable_analytical_storage: Flag to indicate whether to enable storage analytics. :type enable_analytical_storage: bool + :ivar instance_id: A unique identifier assigned to the database account. + :vartype instance_id: str + :param create_mode: Enum to indicate the mode of account creation. Possible values include: + "Default", "Restore". Default value: "Default". + :type create_mode: str or ~azure.mgmt.cosmosdb.models.CreateMode + :param restore_parameters: Parameters to indicate the information about the restore. + :type restore_parameters: ~azure.mgmt.cosmosdb.models.RestoreParameters :param backup_policy: The object representing the policy for taking backups on an account. :type backup_policy: ~azure.mgmt.cosmosdb.models.BackupPolicy :param cors: The CORS policy for the Cosmos DB database account. @@ -1545,6 +2033,7 @@ class DatabaseAccountGetResults(ARMResourceProperties): 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, + 'system_data': {'readonly': True}, 'provisioning_state': {'readonly': True}, 'document_endpoint': {'readonly': True}, 'database_account_offer_type': {'readonly': True, 'constant': True}, @@ -1553,6 +2042,7 @@ class DatabaseAccountGetResults(ARMResourceProperties): 'locations': {'readonly': True}, 'failover_policies': {'readonly': True}, 'private_endpoint_connections': {'readonly': True}, + 'instance_id': {'readonly': True}, } _attribute_map = { @@ -1561,8 +2051,9 @@ class DatabaseAccountGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, - 'kind': {'key': 'kind', 'type': 'str'}, 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'system_data': {'key': 'systemData', 'type': 'SystemData'}, 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 'document_endpoint': {'key': 'properties.documentEndpoint', 'type': 'str'}, 'database_account_offer_type': {'key': 'properties.databaseAccountOfferType', 'type': 'str'}, @@ -1587,6 +2078,9 @@ class DatabaseAccountGetResults(ARMResourceProperties): 'enable_free_tier': {'key': 'properties.enableFreeTier', 'type': 'bool'}, 'api_properties': {'key': 'properties.apiProperties', 'type': 'ApiProperties'}, 'enable_analytical_storage': {'key': 'properties.enableAnalyticalStorage', 'type': 'bool'}, + 'instance_id': {'key': 'properties.instanceId', 'type': 'str'}, + 'create_mode': {'key': 'properties.createMode', 'type': 'str'}, + 'restore_parameters': {'key': 'properties.restoreParameters', 'type': 'RestoreParameters'}, 'backup_policy': {'key': 'properties.backupPolicy', 'type': 'BackupPolicy'}, 'cors': {'key': 'properties.cors', 'type': '[CorsPolicy]'}, 'network_acl_bypass': {'key': 'properties.networkAclBypass', 'type': 'str'}, @@ -1600,8 +2094,8 @@ def __init__( *, location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, - kind: Optional[Union[str, "DatabaseAccountKind"]] = None, identity: Optional["ManagedServiceIdentity"] = None, + kind: Optional[Union[str, "DatabaseAccountKind"]] = None, ip_rules: Optional[List["IpAddressOrRange"]] = None, is_virtual_network_filter_enabled: Optional[bool] = None, enable_automatic_failover: Optional[bool] = None, @@ -1618,15 +2112,17 @@ def __init__( enable_free_tier: Optional[bool] = None, api_properties: Optional["ApiProperties"] = None, enable_analytical_storage: Optional[bool] = None, + create_mode: Optional[Union[str, "CreateMode"]] = "Default", + restore_parameters: Optional["RestoreParameters"] = None, backup_policy: Optional["BackupPolicy"] = None, cors: Optional[List["CorsPolicy"]] = None, network_acl_bypass: Optional[Union[str, "NetworkAclBypass"]] = None, network_acl_bypass_resource_ids: Optional[List[str]] = None, **kwargs ): - super(DatabaseAccountGetResults, self).__init__(location=location, tags=tags, **kwargs) + super(DatabaseAccountGetResults, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.kind = kind - self.identity = identity + self.system_data = None self.provisioning_state = None self.document_endpoint = None self.database_account_offer_type = None @@ -1651,6 +2147,9 @@ def __init__( self.enable_free_tier = enable_free_tier self.api_properties = api_properties self.enable_analytical_storage = enable_analytical_storage + self.instance_id = None + self.create_mode = create_mode + self.restore_parameters = restore_parameters self.backup_policy = backup_policy self.cors = cors self.network_acl_bypass = network_acl_bypass @@ -1954,459 +2453,599 @@ def __init__( self.network_acl_bypass_resource_ids = network_acl_bypass_resource_ids -class ErrorAdditionalInfo(msrest.serialization.Model): - """The resource management error additional info. +class DatabaseRestoreResource(msrest.serialization.Model): + """Specific Databases to restore. - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar type: The additional info type. - :vartype type: str - :ivar info: The additional info. - :vartype info: object + :param database_name: The name of the database available for restore. + :type database_name: str + :param collection_names: The names of the collections available for restore. + :type collection_names: list[str] """ - _validation = { - 'type': {'readonly': True}, - 'info': {'readonly': True}, - } - _attribute_map = { - 'type': {'key': 'type', 'type': 'str'}, - 'info': {'key': 'info', 'type': 'object'}, + 'database_name': {'key': 'databaseName', 'type': 'str'}, + 'collection_names': {'key': 'collectionNames', 'type': '[str]'}, } def __init__( self, + *, + database_name: Optional[str] = None, + collection_names: Optional[List[str]] = None, **kwargs ): - super(ErrorAdditionalInfo, self).__init__(**kwargs) - self.type = None - self.info = None + super(DatabaseRestoreResource, self).__init__(**kwargs) + self.database_name = database_name + self.collection_names = collection_names -class ErrorResponse(msrest.serialization.Model): - """Error Response. +class DataCenterResource(ARMProxyResource): + """A managed Cassandra data center. - :param code: Error code. - :type code: str - :param message: Error message indicating why the operation failed. - :type message: str + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource identifier of the database account. + :vartype id: str + :ivar name: The name of the database account. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param properties: Properties of a managed Cassandra data center. + :type properties: ~azure.mgmt.cosmosdb.models.DataCenterResourceProperties """ + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + _attribute_map = { - 'code': {'key': 'code', 'type': 'str'}, - 'message': {'key': 'message', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'DataCenterResourceProperties'}, } def __init__( self, *, - code: Optional[str] = None, - message: Optional[str] = None, + properties: Optional["DataCenterResourceProperties"] = None, **kwargs ): - super(ErrorResponse, self).__init__(**kwargs) - self.code = code - self.message = message + super(DataCenterResource, self).__init__(**kwargs) + self.properties = properties -class ErrorResponseAutoGenerated(msrest.serialization.Model): - """Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). +class DataCenterResourceProperties(msrest.serialization.Model): + """Properties of a managed Cassandra data center. Variables are only populated by the server, and will be ignored when sending a request. - :ivar code: The error code. - :vartype code: str - :ivar message: The error message. - :vartype message: str - :ivar target: The error target. - :vartype target: str - :ivar details: The error details. - :vartype details: list[~azure.mgmt.cosmosdb.models.ErrorResponseAutoGenerated] - :ivar additional_info: The error additional info. - :vartype additional_info: list[~azure.mgmt.cosmosdb.models.ErrorAdditionalInfo] + :param provisioning_state: The status of the resource at the time the operation was called. + Possible values include: "Creating", "Updating", "Deleting", "Succeeded", "Failed", "Canceled". + :type provisioning_state: str or ~azure.mgmt.cosmosdb.models.ManagedCassandraProvisioningState + :param data_center_location: The region this data center should be created in. + :type data_center_location: str + :param delegated_subnet_id: Resource id of a subnet the nodes in this data center should have + their network interfaces connected to. The subnet must be in the same region specified in + 'dataCenterLocation' and must be able to route to the subnet specified in the cluster's + 'delegatedManagementSubnetId' property. This resource id will be of the form + '/subscriptions/:code:``/resourceGroups/:code:``/providers/Microsoft.Network/virtualNetworks/:code:``/subnets/:code:``'. + :type delegated_subnet_id: str + :param node_count: The number of nodes the data center should have. This is the desired number. + After it is set, it may take some time for the data center to be scaled to match. To monitor + the number of nodes and their status, use the fetchNodeStatus method on the cluster. + :type node_count: int + :ivar seed_nodes: IP addresses for seed nodes in this data center. This is for reference. + Generally you will want to use the seedNodes property on the cluster, which aggregates the seed + nodes from all data centers in the cluster. + :vartype seed_nodes: list[~azure.mgmt.cosmosdb.models.SeedNode] + :param base64_encoded_cassandra_yaml_fragment: A fragment of a cassandra.yaml configuration + file to be included in the cassandra.yaml for all nodes in this data center. The fragment + should be Base64 encoded, and only a subset of keys are allowed. + :type base64_encoded_cassandra_yaml_fragment: str """ _validation = { - 'code': {'readonly': True}, - 'message': {'readonly': True}, - 'target': {'readonly': True}, - 'details': {'readonly': True}, - 'additional_info': {'readonly': True}, + 'seed_nodes': {'readonly': True}, } _attribute_map = { - 'code': {'key': 'code', 'type': 'str'}, - 'message': {'key': 'message', 'type': 'str'}, - 'target': {'key': 'target', 'type': 'str'}, - 'details': {'key': 'details', 'type': '[ErrorResponseAutoGenerated]'}, - 'additional_info': {'key': 'additionalInfo', 'type': '[ErrorAdditionalInfo]'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'data_center_location': {'key': 'dataCenterLocation', 'type': 'str'}, + 'delegated_subnet_id': {'key': 'delegatedSubnetId', 'type': 'str'}, + 'node_count': {'key': 'nodeCount', 'type': 'int'}, + 'seed_nodes': {'key': 'seedNodes', 'type': '[SeedNode]'}, + 'base64_encoded_cassandra_yaml_fragment': {'key': 'base64EncodedCassandraYamlFragment', 'type': 'str'}, } def __init__( self, + *, + provisioning_state: Optional[Union[str, "ManagedCassandraProvisioningState"]] = None, + data_center_location: Optional[str] = None, + delegated_subnet_id: Optional[str] = None, + node_count: Optional[int] = None, + base64_encoded_cassandra_yaml_fragment: Optional[str] = None, **kwargs ): - super(ErrorResponseAutoGenerated, self).__init__(**kwargs) - self.code = None - self.message = None - self.target = None - self.details = None - self.additional_info = None + super(DataCenterResourceProperties, self).__init__(**kwargs) + self.provisioning_state = provisioning_state + self.data_center_location = data_center_location + self.delegated_subnet_id = delegated_subnet_id + self.node_count = node_count + self.seed_nodes = None + self.base64_encoded_cassandra_yaml_fragment = base64_encoded_cassandra_yaml_fragment + +class RegionalServiceResource(msrest.serialization.Model): + """Resource for a regional service location. -class ErrorResponseUpdatedFormat(msrest.serialization.Model): - """An error response from the service. + Variables are only populated by the server, and will be ignored when sending a request. - :param error: Common error response for all Azure Resource Manager APIs to return error details - for failed operations. (This also follows the OData error response format.). - :type error: ~azure.mgmt.cosmosdb.models.ErrorResponseAutoGenerated + :ivar name: The regional service name. + :vartype name: str + :ivar location: The location name. + :vartype location: str + :ivar status: Describes the status of a service. Possible values include: "Creating", + "Running", "Updating", "Deleting", "Error", "Stopped". + :vartype status: str or ~azure.mgmt.cosmosdb.models.ServiceStatus """ - _attribute_map = { - 'error': {'key': 'error', 'type': 'ErrorResponseAutoGenerated'}, + _validation = { + 'name': {'readonly': True}, + 'location': {'readonly': True}, + 'status': {'readonly': True}, } - def __init__( - self, - *, - error: Optional["ErrorResponseAutoGenerated"] = None, - **kwargs - ): - super(ErrorResponseUpdatedFormat, self).__init__(**kwargs) - self.error = error - - -class ExcludedPath(msrest.serialization.Model): - """ExcludedPath. - - :param path: The path for which the indexing behavior applies to. Index paths typically start - with root and end with wildcard (/path/*). - :type path: str - """ - _attribute_map = { - 'path': {'key': 'path', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, } def __init__( self, - *, - path: Optional[str] = None, **kwargs ): - super(ExcludedPath, self).__init__(**kwargs) - self.path = path + super(RegionalServiceResource, self).__init__(**kwargs) + self.name = None + self.location = None + self.status = None -class FailoverPolicies(msrest.serialization.Model): - """The list of new failover policies for the failover priority change. +class DataTransferRegionalServiceResource(RegionalServiceResource): + """Resource for a regional service location. - All required parameters must be populated in order to send to Azure. + Variables are only populated by the server, and will be ignored when sending a request. - :param failover_policies: Required. List of failover policies. - :type failover_policies: list[~azure.mgmt.cosmosdb.models.FailoverPolicy] + :ivar name: The regional service name. + :vartype name: str + :ivar location: The location name. + :vartype location: str + :ivar status: Describes the status of a service. Possible values include: "Creating", + "Running", "Updating", "Deleting", "Error", "Stopped". + :vartype status: str or ~azure.mgmt.cosmosdb.models.ServiceStatus """ _validation = { - 'failover_policies': {'required': True}, + 'name': {'readonly': True}, + 'location': {'readonly': True}, + 'status': {'readonly': True}, } _attribute_map = { - 'failover_policies': {'key': 'failoverPolicies', 'type': '[FailoverPolicy]'}, + 'name': {'key': 'name', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, } def __init__( self, - *, - failover_policies: List["FailoverPolicy"], **kwargs ): - super(FailoverPolicies, self).__init__(**kwargs) - self.failover_policies = failover_policies - + super(DataTransferRegionalServiceResource, self).__init__(**kwargs) -class FailoverPolicy(msrest.serialization.Model): - """The failover policy for a given region of a database account. - Variables are only populated by the server, and will be ignored when sending a request. +class DataTransferServiceResource(msrest.serialization.Model): + """Describes the service response property. - :ivar id: The unique identifier of the region in which the database account replicates to. - Example: <accountName>-<locationName>. - :vartype id: str - :param location_name: The name of the region in which the database account exists. - :type location_name: str - :param failover_priority: The failover priority of the region. A failover priority of 0 - indicates a write region. The maximum value for a failover priority = (total number of regions - - 1). Failover priority values must be unique for each of the regions in which the database - account exists. - :type failover_priority: int + :param properties: Properties for DataTransferServiceResource. + :type properties: ~azure.mgmt.cosmosdb.models.DataTransferServiceResourceProperties """ - _validation = { - 'id': {'readonly': True}, - 'failover_priority': {'minimum': 0}, - } - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'location_name': {'key': 'locationName', 'type': 'str'}, - 'failover_priority': {'key': 'failoverPriority', 'type': 'int'}, + 'properties': {'key': 'properties', 'type': 'DataTransferServiceResourceProperties'}, } def __init__( self, *, - location_name: Optional[str] = None, - failover_priority: Optional[int] = None, + properties: Optional["DataTransferServiceResourceProperties"] = None, **kwargs ): - super(FailoverPolicy, self).__init__(**kwargs) - self.id = None - self.location_name = location_name - self.failover_priority = failover_priority + super(DataTransferServiceResource, self).__init__(**kwargs) + self.properties = properties -class GremlinDatabaseCreateUpdateParameters(ARMResourceProperties): - """Parameters to create and update Cosmos DB Gremlin database. +class ServiceResourceProperties(msrest.serialization.Model): + """Services response resource. + + You probably want to use the sub-classes and not this class directly. Known + sub-classes are: DataTransferServiceResourceProperties, SqlDedicatedGatewayServiceResourceProperties. Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :ivar id: The unique resource identifier of the ARM resource. - :vartype id: str - :ivar name: The name of the ARM resource. - :vartype name: str - :ivar type: The type of Azure resource. - :vartype type: str - :param location: The location of the resource group to which the resource belongs. - :type location: str - :param tags: A set of tags. Tags are a list of key-value pairs that describe the resource. - These tags can be used in viewing and grouping this resource (across resource groups). A - maximum of 15 tags can be provided for a resource. Each tag must have a key no greater than 128 - characters and value no greater than 256 characters. For example, the default experience for a - template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values - also include "Table", "Graph", "DocumentDB", and "MongoDB". - :type tags: dict[str, str] - :param resource: Required. The standard JSON format of a Gremlin database. - :type resource: ~azure.mgmt.cosmosdb.models.GremlinDatabaseResource - :param options: A key-value pair of options to be applied for the request. This corresponds to - the headers sent with the request. - :type options: ~azure.mgmt.cosmosdb.models.CreateUpdateOptions + :param additional_properties: Unmatched properties from the message are deserialized to this + collection. + :type additional_properties: dict[str, object] + :ivar creation_time: Time of the last state change (ISO-8601 format). + :vartype creation_time: ~datetime.datetime + :param instance_size: Instance type for the service. Possible values include: "Cosmos.D4s", + "Cosmos.D8s", "Cosmos.D16s". + :type instance_size: str or ~azure.mgmt.cosmosdb.models.ServiceSize + :param instance_count: Instance count for the service. + :type instance_count: int + :param service_type: Required. ServiceType for the service.Constant filled by server. Possible + values include: "SqlDedicatedGateway", "DataTransfer". + :type service_type: str or ~azure.mgmt.cosmosdb.models.ServiceType + :ivar status: Describes the status of a service. Possible values include: "Creating", + "Running", "Updating", "Deleting", "Error", "Stopped". + :vartype status: str or ~azure.mgmt.cosmosdb.models.ServiceStatus """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'resource': {'required': True}, + 'creation_time': {'readonly': True}, + 'instance_count': {'minimum': 0}, + 'service_type': {'required': True}, + 'status': {'readonly': True}, } _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'location': {'key': 'location', 'type': 'str'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'resource': {'key': 'properties.resource', 'type': 'GremlinDatabaseResource'}, - 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, + 'additional_properties': {'key': '', 'type': '{object}'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'instance_size': {'key': 'instanceSize', 'type': 'str'}, + 'instance_count': {'key': 'instanceCount', 'type': 'int'}, + 'service_type': {'key': 'serviceType', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, } - def __init__( - self, - *, - resource: "GremlinDatabaseResource", - location: Optional[str] = None, - tags: Optional[Dict[str, str]] = None, - options: Optional["CreateUpdateOptions"] = None, - **kwargs - ): - super(GremlinDatabaseCreateUpdateParameters, self).__init__(location=location, tags=tags, **kwargs) - self.resource = resource - self.options = options - - -class GremlinDatabaseGetPropertiesOptions(OptionsResource): - """GremlinDatabaseGetPropertiesOptions. - - :param throughput: Value of the Cosmos DB resource throughput or autoscaleSettings. Use the - ThroughputSetting resource when retrieving offer details. - :type throughput: int - :param autoscale_settings: Specifies the Autoscale settings. - :type autoscale_settings: ~azure.mgmt.cosmosdb.models.AutoscaleSettings - """ - - _attribute_map = { - 'throughput': {'key': 'throughput', 'type': 'int'}, - 'autoscale_settings': {'key': 'autoscaleSettings', 'type': 'AutoscaleSettings'}, + _subtype_map = { + 'service_type': {'DataTransferServiceResourceProperties': 'DataTransferServiceResourceProperties', 'SqlDedicatedGatewayServiceResourceProperties': 'SqlDedicatedGatewayServiceResourceProperties'} } def __init__( self, *, - throughput: Optional[int] = None, - autoscale_settings: Optional["AutoscaleSettings"] = None, + additional_properties: Optional[Dict[str, object]] = None, + instance_size: Optional[Union[str, "ServiceSize"]] = None, + instance_count: Optional[int] = None, **kwargs ): - super(GremlinDatabaseGetPropertiesOptions, self).__init__(throughput=throughput, autoscale_settings=autoscale_settings, **kwargs) + super(ServiceResourceProperties, self).__init__(**kwargs) + self.additional_properties = additional_properties + self.creation_time = None + self.instance_size = instance_size + self.instance_count = instance_count + self.service_type = 'ServiceResourceProperties' # type: str + self.status = None -class GremlinDatabaseResource(msrest.serialization.Model): - """Cosmos DB Gremlin database resource object. +class DataTransferServiceResourceProperties(ServiceResourceProperties): + """Properties for DataTransferServiceResource. + + Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :param id: Required. Name of the Cosmos DB Gremlin database. - :type id: str + :param additional_properties: Unmatched properties from the message are deserialized to this + collection. + :type additional_properties: dict[str, object] + :ivar creation_time: Time of the last state change (ISO-8601 format). + :vartype creation_time: ~datetime.datetime + :param instance_size: Instance type for the service. Possible values include: "Cosmos.D4s", + "Cosmos.D8s", "Cosmos.D16s". + :type instance_size: str or ~azure.mgmt.cosmosdb.models.ServiceSize + :param instance_count: Instance count for the service. + :type instance_count: int + :param service_type: Required. ServiceType for the service.Constant filled by server. Possible + values include: "SqlDedicatedGateway", "DataTransfer". + :type service_type: str or ~azure.mgmt.cosmosdb.models.ServiceType + :ivar status: Describes the status of a service. Possible values include: "Creating", + "Running", "Updating", "Deleting", "Error", "Stopped". + :vartype status: str or ~azure.mgmt.cosmosdb.models.ServiceStatus + :ivar locations: An array that contains all of the locations for the service. + :vartype locations: list[~azure.mgmt.cosmosdb.models.DataTransferRegionalServiceResource] """ _validation = { - 'id': {'required': True}, + 'creation_time': {'readonly': True}, + 'instance_count': {'minimum': 0}, + 'service_type': {'required': True}, + 'status': {'readonly': True}, + 'locations': {'readonly': True}, } _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, + 'additional_properties': {'key': '', 'type': '{object}'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'instance_size': {'key': 'instanceSize', 'type': 'str'}, + 'instance_count': {'key': 'instanceCount', 'type': 'int'}, + 'service_type': {'key': 'serviceType', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'locations': {'key': 'locations', 'type': '[DataTransferRegionalServiceResource]'}, } def __init__( self, *, - id: str, + additional_properties: Optional[Dict[str, object]] = None, + instance_size: Optional[Union[str, "ServiceSize"]] = None, + instance_count: Optional[int] = None, **kwargs ): - super(GremlinDatabaseResource, self).__init__(**kwargs) - self.id = id + super(DataTransferServiceResourceProperties, self).__init__(additional_properties=additional_properties, instance_size=instance_size, instance_count=instance_count, **kwargs) + self.service_type = 'DataTransferServiceResourceProperties' # type: str + self.locations = None -class GremlinDatabaseGetPropertiesResource(ExtendedResourceProperties, GremlinDatabaseResource): - """GremlinDatabaseGetPropertiesResource. +class DefaultRequestDatabaseAccountCreateUpdateProperties(DatabaseAccountCreateUpdateProperties): + """Properties for non-restore Azure Cosmos DB database account requests. Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :param id: Required. Name of the Cosmos DB Gremlin database. - :type id: str - :ivar rid: A system generated property. A unique identifier. - :vartype rid: str - :ivar ts: A system generated property that denotes the last updated timestamp of the resource. - :vartype ts: float - :ivar etag: A system generated property representing the resource etag required for optimistic - concurrency control. - :vartype etag: str + :param consistency_policy: The consistency policy for the Cosmos DB account. + :type consistency_policy: ~azure.mgmt.cosmosdb.models.ConsistencyPolicy + :param locations: Required. An array that contains the georeplication locations enabled for the + Cosmos DB account. + :type locations: list[~azure.mgmt.cosmosdb.models.Location] + :ivar database_account_offer_type: Required. The offer type for the database. Default value: + "Standard". + :vartype database_account_offer_type: str + :param ip_rules: List of IpRules. + :type ip_rules: list[~azure.mgmt.cosmosdb.models.IpAddressOrRange] + :param is_virtual_network_filter_enabled: Flag to indicate whether to enable/disable Virtual + Network ACL rules. + :type is_virtual_network_filter_enabled: bool + :param enable_automatic_failover: Enables automatic failover of the write region in the rare + event that the region is unavailable due to an outage. Automatic failover will result in a new + write region for the account and is chosen based on the failover priorities configured for the + account. + :type enable_automatic_failover: bool + :param capabilities: List of Cosmos DB capabilities for the account. + :type capabilities: list[~azure.mgmt.cosmosdb.models.Capability] + :param virtual_network_rules: List of Virtual Network ACL rules configured for the Cosmos DB + account. + :type virtual_network_rules: list[~azure.mgmt.cosmosdb.models.VirtualNetworkRule] + :param enable_multiple_write_locations: Enables the account to write in multiple locations. + :type enable_multiple_write_locations: bool + :param enable_cassandra_connector: Enables the cassandra connector on the Cosmos DB C* account. + :type enable_cassandra_connector: bool + :param connector_offer: The cassandra connector offer type for the Cosmos DB database C* + account. Possible values include: "Small". + :type connector_offer: str or ~azure.mgmt.cosmosdb.models.ConnectorOffer + :param disable_key_based_metadata_write_access: Disable write operations on metadata resources + (databases, containers, throughput) via account keys. + :type disable_key_based_metadata_write_access: bool + :param key_vault_key_uri: The URI of the key vault. + :type key_vault_key_uri: str + :param default_identity: The default identity for accessing key vault used in features like + customer managed keys. The default identity needs to be explicitly set by the users. It can be + "FirstPartyIdentity", "SystemAssignedIdentity" and more. + :type default_identity: str + :param public_network_access: Whether requests from Public Network are allowed. Possible values + include: "Enabled", "Disabled". + :type public_network_access: str or ~azure.mgmt.cosmosdb.models.PublicNetworkAccess + :param enable_free_tier: Flag to indicate whether Free Tier is enabled. + :type enable_free_tier: bool + :param api_properties: API specific properties. Currently, supported only for MongoDB API. + :type api_properties: ~azure.mgmt.cosmosdb.models.ApiProperties + :param enable_analytical_storage: Flag to indicate whether to enable storage analytics. + :type enable_analytical_storage: bool + :param create_mode: Required. Enum to indicate the mode of account creation.Constant filled by + server. Possible values include: "Default", "Restore". Default value: "Default". + :type create_mode: str or ~azure.mgmt.cosmosdb.models.CreateMode + :param backup_policy: The object representing the policy for taking backups on an account. + :type backup_policy: ~azure.mgmt.cosmosdb.models.BackupPolicy + :param cors: The CORS policy for the Cosmos DB database account. + :type cors: list[~azure.mgmt.cosmosdb.models.CorsPolicy] + :param network_acl_bypass: Indicates what services are allowed to bypass firewall checks. + Possible values include: "None", "AzureServices". + :type network_acl_bypass: str or ~azure.mgmt.cosmosdb.models.NetworkAclBypass + :param network_acl_bypass_resource_ids: An array that contains the Resource Ids for Network Acl + Bypass for the Cosmos DB account. + :type network_acl_bypass_resource_ids: list[str] """ _validation = { - 'id': {'required': True}, - 'rid': {'readonly': True}, - 'ts': {'readonly': True}, - 'etag': {'readonly': True}, + 'locations': {'required': True}, + 'database_account_offer_type': {'required': True, 'constant': True}, + 'create_mode': {'required': True}, + } + + _attribute_map = { + 'consistency_policy': {'key': 'consistencyPolicy', 'type': 'ConsistencyPolicy'}, + 'locations': {'key': 'locations', 'type': '[Location]'}, + 'database_account_offer_type': {'key': 'databaseAccountOfferType', 'type': 'str'}, + 'ip_rules': {'key': 'ipRules', 'type': '[IpAddressOrRange]'}, + 'is_virtual_network_filter_enabled': {'key': 'isVirtualNetworkFilterEnabled', 'type': 'bool'}, + 'enable_automatic_failover': {'key': 'enableAutomaticFailover', 'type': 'bool'}, + 'capabilities': {'key': 'capabilities', 'type': '[Capability]'}, + 'virtual_network_rules': {'key': 'virtualNetworkRules', 'type': '[VirtualNetworkRule]'}, + 'enable_multiple_write_locations': {'key': 'enableMultipleWriteLocations', 'type': 'bool'}, + 'enable_cassandra_connector': {'key': 'enableCassandraConnector', 'type': 'bool'}, + 'connector_offer': {'key': 'connectorOffer', 'type': 'str'}, + 'disable_key_based_metadata_write_access': {'key': 'disableKeyBasedMetadataWriteAccess', 'type': 'bool'}, + 'key_vault_key_uri': {'key': 'keyVaultKeyUri', 'type': 'str'}, + 'default_identity': {'key': 'defaultIdentity', 'type': 'str'}, + 'public_network_access': {'key': 'publicNetworkAccess', 'type': 'str'}, + 'enable_free_tier': {'key': 'enableFreeTier', 'type': 'bool'}, + 'api_properties': {'key': 'apiProperties', 'type': 'ApiProperties'}, + 'enable_analytical_storage': {'key': 'enableAnalyticalStorage', 'type': 'bool'}, + 'create_mode': {'key': 'createMode', 'type': 'str'}, + 'backup_policy': {'key': 'backupPolicy', 'type': 'BackupPolicy'}, + 'cors': {'key': 'cors', 'type': '[CorsPolicy]'}, + 'network_acl_bypass': {'key': 'networkAclBypass', 'type': 'str'}, + 'network_acl_bypass_resource_ids': {'key': 'networkAclBypassResourceIds', 'type': '[str]'}, } + database_account_offer_type = "Standard" + + def __init__( + self, + *, + locations: List["Location"], + consistency_policy: Optional["ConsistencyPolicy"] = None, + ip_rules: Optional[List["IpAddressOrRange"]] = None, + is_virtual_network_filter_enabled: Optional[bool] = None, + enable_automatic_failover: Optional[bool] = None, + capabilities: Optional[List["Capability"]] = None, + virtual_network_rules: Optional[List["VirtualNetworkRule"]] = None, + enable_multiple_write_locations: Optional[bool] = None, + enable_cassandra_connector: Optional[bool] = None, + connector_offer: Optional[Union[str, "ConnectorOffer"]] = None, + disable_key_based_metadata_write_access: Optional[bool] = None, + key_vault_key_uri: Optional[str] = None, + default_identity: Optional[str] = None, + public_network_access: Optional[Union[str, "PublicNetworkAccess"]] = None, + enable_free_tier: Optional[bool] = None, + api_properties: Optional["ApiProperties"] = None, + enable_analytical_storage: Optional[bool] = None, + backup_policy: Optional["BackupPolicy"] = None, + cors: Optional[List["CorsPolicy"]] = None, + network_acl_bypass: Optional[Union[str, "NetworkAclBypass"]] = None, + network_acl_bypass_resource_ids: Optional[List[str]] = None, + **kwargs + ): + super(DefaultRequestDatabaseAccountCreateUpdateProperties, self).__init__(consistency_policy=consistency_policy, locations=locations, ip_rules=ip_rules, is_virtual_network_filter_enabled=is_virtual_network_filter_enabled, enable_automatic_failover=enable_automatic_failover, capabilities=capabilities, virtual_network_rules=virtual_network_rules, enable_multiple_write_locations=enable_multiple_write_locations, enable_cassandra_connector=enable_cassandra_connector, connector_offer=connector_offer, disable_key_based_metadata_write_access=disable_key_based_metadata_write_access, key_vault_key_uri=key_vault_key_uri, default_identity=default_identity, public_network_access=public_network_access, enable_free_tier=enable_free_tier, api_properties=api_properties, enable_analytical_storage=enable_analytical_storage, backup_policy=backup_policy, cors=cors, network_acl_bypass=network_acl_bypass, network_acl_bypass_resource_ids=network_acl_bypass_resource_ids, **kwargs) + self.create_mode = 'Default' # type: str + + +class ErrorResponse(msrest.serialization.Model): + """Error Response. + + :param code: Error code. + :type code: str + :param message: Error message indicating why the operation failed. + :type message: str + """ + _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'rid': {'key': '_rid', 'type': 'str'}, - 'ts': {'key': '_ts', 'type': 'float'}, - 'etag': {'key': '_etag', 'type': 'str'}, + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, } def __init__( self, *, - id: str, + code: Optional[str] = None, + message: Optional[str] = None, **kwargs ): - super(GremlinDatabaseGetPropertiesResource, self).__init__(id=id, **kwargs) - self.id = id - self.rid = None - self.ts = None - self.etag = None + super(ErrorResponse, self).__init__(**kwargs) + self.code = code + self.message = message -class GremlinDatabaseGetResults(ARMResourceProperties): - """An Azure Cosmos DB Gremlin database. +class ExcludedPath(msrest.serialization.Model): + """ExcludedPath. - Variables are only populated by the server, and will be ignored when sending a request. + :param path: The path for which the indexing behavior applies to. Index paths typically start + with root and end with wildcard (/path/*). + :type path: str + """ - :ivar id: The unique resource identifier of the ARM resource. - :vartype id: str - :ivar name: The name of the ARM resource. - :vartype name: str - :ivar type: The type of Azure resource. - :vartype type: str - :param location: The location of the resource group to which the resource belongs. - :type location: str - :param tags: A set of tags. Tags are a list of key-value pairs that describe the resource. - These tags can be used in viewing and grouping this resource (across resource groups). A - maximum of 15 tags can be provided for a resource. Each tag must have a key no greater than 128 - characters and value no greater than 256 characters. For example, the default experience for a - template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values - also include "Table", "Graph", "DocumentDB", and "MongoDB". - :type tags: dict[str, str] - :param resource: - :type resource: ~azure.mgmt.cosmosdb.models.GremlinDatabaseGetPropertiesResource - :ivar options: Cosmos DB options resource object. - :vartype options: ~azure.mgmt.cosmosdb.models.OptionsResource + _attribute_map = { + 'path': {'key': 'path', 'type': 'str'}, + } + + def __init__( + self, + *, + path: Optional[str] = None, + **kwargs + ): + super(ExcludedPath, self).__init__(**kwargs) + self.path = path + + +class FailoverPolicies(msrest.serialization.Model): + """The list of new failover policies for the failover priority change. + + All required parameters must be populated in order to send to Azure. + + :param failover_policies: Required. List of failover policies. + :type failover_policies: list[~azure.mgmt.cosmosdb.models.FailoverPolicy] """ _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'options': {'readonly': True}, + 'failover_policies': {'required': True}, } _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'location': {'key': 'location', 'type': 'str'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'resource': {'key': 'properties.resource', 'type': 'GremlinDatabaseGetPropertiesResource'}, - 'options': {'key': 'properties.options', 'type': 'OptionsResource'}, + 'failover_policies': {'key': 'failoverPolicies', 'type': '[FailoverPolicy]'}, } def __init__( self, *, - location: Optional[str] = None, - tags: Optional[Dict[str, str]] = None, - resource: Optional["GremlinDatabaseGetPropertiesResource"] = None, + failover_policies: List["FailoverPolicy"], **kwargs ): - super(GremlinDatabaseGetResults, self).__init__(location=location, tags=tags, **kwargs) - self.resource = resource - self.options = None + super(FailoverPolicies, self).__init__(**kwargs) + self.failover_policies = failover_policies -class GremlinDatabaseListResult(msrest.serialization.Model): - """The List operation response, that contains the Gremlin databases and their properties. +class FailoverPolicy(msrest.serialization.Model): + """The failover policy for a given region of a database account. Variables are only populated by the server, and will be ignored when sending a request. - :ivar value: List of Gremlin databases and their properties. - :vartype value: list[~azure.mgmt.cosmosdb.models.GremlinDatabaseGetResults] + :ivar id: The unique identifier of the region in which the database account replicates to. + Example: <accountName>-<locationName>. + :vartype id: str + :param location_name: The name of the region in which the database account exists. + :type location_name: str + :param failover_priority: The failover priority of the region. A failover priority of 0 + indicates a write region. The maximum value for a failover priority = (total number of regions + - 1). Failover priority values must be unique for each of the regions in which the database + account exists. + :type failover_priority: int """ _validation = { - 'value': {'readonly': True}, + 'id': {'readonly': True}, + 'failover_priority': {'minimum': 0}, } _attribute_map = { - 'value': {'key': 'value', 'type': '[GremlinDatabaseGetResults]'}, + 'id': {'key': 'id', 'type': 'str'}, + 'location_name': {'key': 'locationName', 'type': 'str'}, + 'failover_priority': {'key': 'failoverPriority', 'type': 'int'}, } def __init__( self, + *, + location_name: Optional[str] = None, + failover_priority: Optional[int] = None, **kwargs ): - super(GremlinDatabaseListResult, self).__init__(**kwargs) - self.value = None + super(FailoverPolicy, self).__init__(**kwargs) + self.id = None + self.location_name = location_name + self.failover_priority = failover_priority -class GremlinGraphCreateUpdateParameters(ARMResourceProperties): - """Parameters to create and update Cosmos DB Gremlin graph. +class GremlinDatabaseCreateUpdateParameters(ARMResourceProperties): + """Parameters to create and update Cosmos DB Gremlin database. Variables are only populated by the server, and will be ignored when sending a request. @@ -2427,8 +3066,10 @@ class GremlinGraphCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] - :param resource: Required. The standard JSON format of a Gremlin graph. - :type resource: ~azure.mgmt.cosmosdb.models.GremlinGraphResource + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity + :param resource: Required. The standard JSON format of a Gremlin database. + :type resource: ~azure.mgmt.cosmosdb.models.GremlinDatabaseResource :param options: A key-value pair of options to be applied for the request. This corresponds to the headers sent with the request. :type options: ~azure.mgmt.cosmosdb.models.CreateUpdateOptions @@ -2447,26 +3088,28 @@ class GremlinGraphCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, - 'resource': {'key': 'properties.resource', 'type': 'GremlinGraphResource'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, + 'resource': {'key': 'properties.resource', 'type': 'GremlinDatabaseResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } def __init__( self, *, - resource: "GremlinGraphResource", + resource: "GremlinDatabaseResource", location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, options: Optional["CreateUpdateOptions"] = None, **kwargs ): - super(GremlinGraphCreateUpdateParameters, self).__init__(location=location, tags=tags, **kwargs) + super(GremlinDatabaseCreateUpdateParameters, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource self.options = options -class GremlinGraphGetPropertiesOptions(OptionsResource): - """GremlinGraphGetPropertiesOptions. +class GremlinDatabaseGetPropertiesOptions(OptionsResource): + """GremlinDatabaseGetPropertiesOptions. :param throughput: Value of the Cosmos DB resource throughput or autoscaleSettings. Use the ThroughputSetting resource when retrieving offer details. @@ -2487,22 +3130,268 @@ def __init__( autoscale_settings: Optional["AutoscaleSettings"] = None, **kwargs ): - super(GremlinGraphGetPropertiesOptions, self).__init__(throughput=throughput, autoscale_settings=autoscale_settings, **kwargs) + super(GremlinDatabaseGetPropertiesOptions, self).__init__(throughput=throughput, autoscale_settings=autoscale_settings, **kwargs) -class GremlinGraphResource(msrest.serialization.Model): - """Cosmos DB Gremlin graph resource object. +class GremlinDatabaseResource(msrest.serialization.Model): + """Cosmos DB Gremlin database resource object. All required parameters must be populated in order to send to Azure. - :param id: Required. Name of the Cosmos DB Gremlin graph. + :param id: Required. Name of the Cosmos DB Gremlin database. :type id: str - :param indexing_policy: The configuration of the indexing policy. By default, the indexing is - automatic for all document paths within the graph. - :type indexing_policy: ~azure.mgmt.cosmosdb.models.IndexingPolicy - :param partition_key: The configuration of the partition key to be used for partitioning data - into multiple partitions. - :type partition_key: ~azure.mgmt.cosmosdb.models.ContainerPartitionKey + """ + + _validation = { + 'id': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__( + self, + *, + id: str, + **kwargs + ): + super(GremlinDatabaseResource, self).__init__(**kwargs) + self.id = id + + +class GremlinDatabaseGetPropertiesResource(ExtendedResourceProperties, GremlinDatabaseResource): + """GremlinDatabaseGetPropertiesResource. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. Name of the Cosmos DB Gremlin database. + :type id: str + :ivar rid: A system generated property. A unique identifier. + :vartype rid: str + :ivar ts: A system generated property that denotes the last updated timestamp of the resource. + :vartype ts: float + :ivar etag: A system generated property representing the resource etag required for optimistic + concurrency control. + :vartype etag: str + """ + + _validation = { + 'id': {'required': True}, + 'rid': {'readonly': True}, + 'ts': {'readonly': True}, + 'etag': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'rid': {'key': '_rid', 'type': 'str'}, + 'ts': {'key': '_ts', 'type': 'float'}, + 'etag': {'key': '_etag', 'type': 'str'}, + } + + def __init__( + self, + *, + id: str, + **kwargs + ): + super(GremlinDatabaseGetPropertiesResource, self).__init__(id=id, **kwargs) + self.id = id + self.rid = None + self.ts = None + self.etag = None + + +class GremlinDatabaseGetResults(ARMResourceProperties): + """An Azure Cosmos DB Gremlin database. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource identifier of the ARM resource. + :vartype id: str + :ivar name: The name of the ARM resource. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param location: The location of the resource group to which the resource belongs. + :type location: str + :param tags: A set of tags. Tags are a list of key-value pairs that describe the resource. + These tags can be used in viewing and grouping this resource (across resource groups). A + maximum of 15 tags can be provided for a resource. Each tag must have a key no greater than 128 + characters and value no greater than 256 characters. For example, the default experience for a + template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values + also include "Table", "Graph", "DocumentDB", and "MongoDB". + :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity + :param resource: + :type resource: ~azure.mgmt.cosmosdb.models.GremlinDatabaseGetPropertiesResource + :param options: + :type options: ~azure.mgmt.cosmosdb.models.GremlinDatabaseGetPropertiesOptions + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, + 'resource': {'key': 'properties.resource', 'type': 'GremlinDatabaseGetPropertiesResource'}, + 'options': {'key': 'properties.options', 'type': 'GremlinDatabaseGetPropertiesOptions'}, + } + + def __init__( + self, + *, + location: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, + resource: Optional["GremlinDatabaseGetPropertiesResource"] = None, + options: Optional["GremlinDatabaseGetPropertiesOptions"] = None, + **kwargs + ): + super(GremlinDatabaseGetResults, self).__init__(location=location, tags=tags, identity=identity, **kwargs) + self.resource = resource + self.options = options + + +class GremlinDatabaseListResult(msrest.serialization.Model): + """The List operation response, that contains the Gremlin databases and their properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of Gremlin databases and their properties. + :vartype value: list[~azure.mgmt.cosmosdb.models.GremlinDatabaseGetResults] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[GremlinDatabaseGetResults]'}, + } + + def __init__( + self, + **kwargs + ): + super(GremlinDatabaseListResult, self).__init__(**kwargs) + self.value = None + + +class GremlinGraphCreateUpdateParameters(ARMResourceProperties): + """Parameters to create and update Cosmos DB Gremlin graph. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: The unique resource identifier of the ARM resource. + :vartype id: str + :ivar name: The name of the ARM resource. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param location: The location of the resource group to which the resource belongs. + :type location: str + :param tags: A set of tags. Tags are a list of key-value pairs that describe the resource. + These tags can be used in viewing and grouping this resource (across resource groups). A + maximum of 15 tags can be provided for a resource. Each tag must have a key no greater than 128 + characters and value no greater than 256 characters. For example, the default experience for a + template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values + also include "Table", "Graph", "DocumentDB", and "MongoDB". + :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity + :param resource: Required. The standard JSON format of a Gremlin graph. + :type resource: ~azure.mgmt.cosmosdb.models.GremlinGraphResource + :param options: A key-value pair of options to be applied for the request. This corresponds to + the headers sent with the request. + :type options: ~azure.mgmt.cosmosdb.models.CreateUpdateOptions + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'resource': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, + 'resource': {'key': 'properties.resource', 'type': 'GremlinGraphResource'}, + 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, + } + + def __init__( + self, + *, + resource: "GremlinGraphResource", + location: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, + options: Optional["CreateUpdateOptions"] = None, + **kwargs + ): + super(GremlinGraphCreateUpdateParameters, self).__init__(location=location, tags=tags, identity=identity, **kwargs) + self.resource = resource + self.options = options + + +class GremlinGraphGetPropertiesOptions(OptionsResource): + """GremlinGraphGetPropertiesOptions. + + :param throughput: Value of the Cosmos DB resource throughput or autoscaleSettings. Use the + ThroughputSetting resource when retrieving offer details. + :type throughput: int + :param autoscale_settings: Specifies the Autoscale settings. + :type autoscale_settings: ~azure.mgmt.cosmosdb.models.AutoscaleSettings + """ + + _attribute_map = { + 'throughput': {'key': 'throughput', 'type': 'int'}, + 'autoscale_settings': {'key': 'autoscaleSettings', 'type': 'AutoscaleSettings'}, + } + + def __init__( + self, + *, + throughput: Optional[int] = None, + autoscale_settings: Optional["AutoscaleSettings"] = None, + **kwargs + ): + super(GremlinGraphGetPropertiesOptions, self).__init__(throughput=throughput, autoscale_settings=autoscale_settings, **kwargs) + + +class GremlinGraphResource(msrest.serialization.Model): + """Cosmos DB Gremlin graph resource object. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. Name of the Cosmos DB Gremlin graph. + :type id: str + :param indexing_policy: The configuration of the indexing policy. By default, the indexing is + automatic for all document paths within the graph. + :type indexing_policy: ~azure.mgmt.cosmosdb.models.IndexingPolicy + :param partition_key: The configuration of the partition key to be used for partitioning data + into multiple partitions. + :type partition_key: ~azure.mgmt.cosmosdb.models.ContainerPartitionKey :param default_ttl: Default time to live. :type default_ttl: int :param unique_key_policy: The unique key policy configuration for specifying uniqueness @@ -2638,17 +3527,18 @@ class GremlinGraphGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.GremlinGraphGetPropertiesResource - :ivar options: Cosmos DB options resource object. - :vartype options: ~azure.mgmt.cosmosdb.models.OptionsResource + :param options: + :type options: ~azure.mgmt.cosmosdb.models.GremlinGraphGetPropertiesOptions """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'options': {'readonly': True}, } _attribute_map = { @@ -2657,8 +3547,9 @@ class GremlinGraphGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'GremlinGraphGetPropertiesResource'}, - 'options': {'key': 'properties.options', 'type': 'OptionsResource'}, + 'options': {'key': 'properties.options', 'type': 'GremlinGraphGetPropertiesOptions'}, } def __init__( @@ -2666,12 +3557,14 @@ def __init__( *, location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, resource: Optional["GremlinGraphGetPropertiesResource"] = None, + options: Optional["GremlinGraphGetPropertiesOptions"] = None, **kwargs ): - super(GremlinGraphGetResults, self).__init__(location=location, tags=tags, **kwargs) + super(GremlinGraphGetResults, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource - self.options = None + self.options = options class GremlinGraphListResult(msrest.serialization.Model): @@ -2832,14 +3725,85 @@ def __init__( self.ip_address_or_range = ip_address_or_range -class Location(msrest.serialization.Model): - """A region in which the Azure Cosmos DB database account is deployed. +class ListBackups(msrest.serialization.Model): + """List of restorable backups for a Cassandra cluster. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: The unique identifier of the region within the database account. Example: - <accountName>-<locationName>. - :vartype id: str + :ivar value: Container for array of backups. + :vartype value: list[~azure.mgmt.cosmosdb.models.BackupResource] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[BackupResource]'}, + } + + def __init__( + self, + **kwargs + ): + super(ListBackups, self).__init__(**kwargs) + self.value = None + + +class ListClusters(msrest.serialization.Model): + """List of managed Cassandra clusters. + + :param value: Container for the array of clusters. + :type value: list[~azure.mgmt.cosmosdb.models.ClusterResource] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ClusterResource]'}, + } + + def __init__( + self, + *, + value: Optional[List["ClusterResource"]] = None, + **kwargs + ): + super(ListClusters, self).__init__(**kwargs) + self.value = value + + +class ListDataCenters(msrest.serialization.Model): + """List of managed Cassandra data centers and their properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: Container for array of data centers. + :vartype value: list[~azure.mgmt.cosmosdb.models.DataCenterResource] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[DataCenterResource]'}, + } + + def __init__( + self, + **kwargs + ): + super(ListDataCenters, self).__init__(**kwargs) + self.value = None + + +class Location(msrest.serialization.Model): + """A region in which the Azure Cosmos DB database account is deployed. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique identifier of the region within the database account. Example: + <accountName>-<locationName>. + :vartype id: str :param location_name: The name of the region. :type location_name: str :ivar document_endpoint: The connection endpoint for the specific region. Example: @@ -2896,6 +3860,111 @@ def __init__( self.is_zone_redundant = is_zone_redundant +class LocationGetResult(ARMProxyResource): + """Cosmos DB location get result. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource identifier of the database account. + :vartype id: str + :ivar name: The name of the database account. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param properties: Cosmos DB location metadata. + :type properties: ~azure.mgmt.cosmosdb.models.LocationProperties + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'LocationProperties'}, + } + + def __init__( + self, + *, + properties: Optional["LocationProperties"] = None, + **kwargs + ): + super(LocationGetResult, self).__init__(**kwargs) + self.properties = properties + + +class LocationListResult(msrest.serialization.Model): + """The List operation response, that contains Cosmos DB locations and their properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of Cosmos DB locations and their properties. + :vartype value: list[~azure.mgmt.cosmosdb.models.LocationGetResult] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[LocationGetResult]'}, + } + + def __init__( + self, + **kwargs + ): + super(LocationListResult, self).__init__(**kwargs) + self.value = None + + +class LocationProperties(msrest.serialization.Model): + """Cosmos DB location metadata. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar status: The current status of location in Azure. + :vartype status: str + :ivar supports_availability_zone: Flag indicating whether the location supports availability + zones or not. + :vartype supports_availability_zone: bool + :ivar is_residency_restricted: Flag indicating whether the location is residency sensitive. + :vartype is_residency_restricted: bool + :ivar backup_storage_redundancies: The properties of available backup storage redundancies. + :vartype backup_storage_redundancies: list[str or + ~azure.mgmt.cosmosdb.models.BackupStorageRedundancy] + """ + + _validation = { + 'status': {'readonly': True}, + 'supports_availability_zone': {'readonly': True}, + 'is_residency_restricted': {'readonly': True}, + 'backup_storage_redundancies': {'readonly': True}, + } + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'supports_availability_zone': {'key': 'supportsAvailabilityZone', 'type': 'bool'}, + 'is_residency_restricted': {'key': 'isResidencyRestricted', 'type': 'bool'}, + 'backup_storage_redundancies': {'key': 'backupStorageRedundancies', 'type': '[str]'}, + } + + def __init__( + self, + **kwargs + ): + super(LocationProperties, self).__init__(**kwargs) + self.status = None + self.supports_availability_zone = None + self.is_residency_restricted = None + self.backup_storage_redundancies = None + + class ManagedServiceIdentity(msrest.serialization.Model): """Identity for the resource. @@ -3225,6 +4294,8 @@ class MongoDBCollectionCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a MongoDB collection. :type resource: ~azure.mgmt.cosmosdb.models.MongoDBCollectionResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -3245,6 +4316,7 @@ class MongoDBCollectionCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'MongoDBCollectionResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -3255,10 +4327,11 @@ def __init__( resource: "MongoDBCollectionResource", location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, options: Optional["CreateUpdateOptions"] = None, **kwargs ): - super(MongoDBCollectionCreateUpdateParameters, self).__init__(location=location, tags=tags, **kwargs) + super(MongoDBCollectionCreateUpdateParameters, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource self.options = options @@ -3410,17 +4483,18 @@ class MongoDBCollectionGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.MongoDBCollectionGetPropertiesResource - :ivar options: Cosmos DB options resource object. - :vartype options: ~azure.mgmt.cosmosdb.models.OptionsResource + :param options: + :type options: ~azure.mgmt.cosmosdb.models.MongoDBCollectionGetPropertiesOptions """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'options': {'readonly': True}, } _attribute_map = { @@ -3429,8 +4503,9 @@ class MongoDBCollectionGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'MongoDBCollectionGetPropertiesResource'}, - 'options': {'key': 'properties.options', 'type': 'OptionsResource'}, + 'options': {'key': 'properties.options', 'type': 'MongoDBCollectionGetPropertiesOptions'}, } def __init__( @@ -3438,12 +4513,14 @@ def __init__( *, location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, resource: Optional["MongoDBCollectionGetPropertiesResource"] = None, + options: Optional["MongoDBCollectionGetPropertiesOptions"] = None, **kwargs ): - super(MongoDBCollectionGetResults, self).__init__(location=location, tags=tags, **kwargs) + super(MongoDBCollectionGetResults, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource - self.options = None + self.options = options class MongoDBCollectionListResult(msrest.serialization.Model): @@ -3493,6 +4570,8 @@ class MongoDBDatabaseCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a MongoDB database. :type resource: ~azure.mgmt.cosmosdb.models.MongoDBDatabaseResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -3513,6 +4592,7 @@ class MongoDBDatabaseCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'MongoDBDatabaseResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -3523,10 +4603,11 @@ def __init__( resource: "MongoDBDatabaseResource", location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, options: Optional["CreateUpdateOptions"] = None, **kwargs ): - super(MongoDBDatabaseCreateUpdateParameters, self).__init__(location=location, tags=tags, **kwargs) + super(MongoDBDatabaseCreateUpdateParameters, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource self.options = options @@ -3648,17 +4729,18 @@ class MongoDBDatabaseGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.MongoDBDatabaseGetPropertiesResource - :ivar options: Cosmos DB options resource object. - :vartype options: ~azure.mgmt.cosmosdb.models.OptionsResource + :param options: + :type options: ~azure.mgmt.cosmosdb.models.MongoDBDatabaseGetPropertiesOptions """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'options': {'readonly': True}, } _attribute_map = { @@ -3667,8 +4749,9 @@ class MongoDBDatabaseGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'MongoDBDatabaseGetPropertiesResource'}, - 'options': {'key': 'properties.options', 'type': 'OptionsResource'}, + 'options': {'key': 'properties.options', 'type': 'MongoDBDatabaseGetPropertiesOptions'}, } def __init__( @@ -3676,12 +4759,14 @@ def __init__( *, location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, resource: Optional["MongoDBDatabaseGetPropertiesResource"] = None, + options: Optional["MongoDBDatabaseGetPropertiesOptions"] = None, **kwargs ): - super(MongoDBDatabaseGetResults, self).__init__(location=location, tags=tags, **kwargs) + super(MongoDBDatabaseGetResults, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource - self.options = None + self.options = options class MongoDBDatabaseListResult(msrest.serialization.Model): @@ -4397,6 +5482,9 @@ class PeriodicModeProperties(msrest.serialization.Model): :param backup_retention_interval_in_hours: An integer representing the time (in hours) that each backup is retained. :type backup_retention_interval_in_hours: int + :param backup_storage_redundancy: Enum to indicate type of backup residency. Possible values + include: "Geo", "Local", "Zone". + :type backup_storage_redundancy: str or ~azure.mgmt.cosmosdb.models.BackupStorageRedundancy """ _validation = { @@ -4407,6 +5495,7 @@ class PeriodicModeProperties(msrest.serialization.Model): _attribute_map = { 'backup_interval_in_minutes': {'key': 'backupIntervalInMinutes', 'type': 'int'}, 'backup_retention_interval_in_hours': {'key': 'backupRetentionIntervalInHours', 'type': 'int'}, + 'backup_storage_redundancy': {'key': 'backupStorageRedundancy', 'type': 'str'}, } def __init__( @@ -4414,11 +5503,39 @@ def __init__( *, backup_interval_in_minutes: Optional[int] = None, backup_retention_interval_in_hours: Optional[int] = None, + backup_storage_redundancy: Optional[Union[str, "BackupStorageRedundancy"]] = None, **kwargs ): super(PeriodicModeProperties, self).__init__(**kwargs) self.backup_interval_in_minutes = backup_interval_in_minutes self.backup_retention_interval_in_hours = backup_retention_interval_in_hours + self.backup_storage_redundancy = backup_storage_redundancy + + +class Permission(msrest.serialization.Model): + """The set of data plane operations permitted through this Role Definition. + + :param data_actions: An array of data actions that are allowed. + :type data_actions: list[str] + :param not_data_actions: An array of data actions that are denied. + :type not_data_actions: list[str] + """ + + _attribute_map = { + 'data_actions': {'key': 'dataActions', 'type': '[str]'}, + 'not_data_actions': {'key': 'notDataActions', 'type': '[str]'}, + } + + def __init__( + self, + *, + data_actions: Optional[List[str]] = None, + not_data_actions: Optional[List[str]] = None, + **kwargs + ): + super(Permission, self).__init__(**kwargs) + self.data_actions = data_actions + self.not_data_actions = not_data_actions class Resource(msrest.serialization.Model): @@ -4458,7 +5575,41 @@ def __init__( self.type = None -class PrivateEndpointConnection(Resource): +class ProxyResource(Resource): + """The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ProxyResource, self).__init__(**kwargs) + + +class PrivateEndpointConnection(ProxyResource): """A private endpoint connection. Variables are only populated by the server, and will be ignored when sending a request. @@ -4598,83 +5749,1227 @@ def __init__( self, **kwargs ): - super(PrivateLinkResource, self).__init__(**kwargs) - self.group_id = None - self.required_members = None - self.required_zone_names = None + super(PrivateLinkResource, self).__init__(**kwargs) + self.group_id = None + self.required_members = None + self.required_zone_names = None + + +class PrivateLinkResourceListResult(msrest.serialization.Model): + """A list of private link resources. + + :param value: Array of private link resources. + :type value: list[~azure.mgmt.cosmosdb.models.PrivateLinkResource] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PrivateLinkResource]'}, + } + + def __init__( + self, + *, + value: Optional[List["PrivateLinkResource"]] = None, + **kwargs + ): + super(PrivateLinkResourceListResult, self).__init__(**kwargs) + self.value = value + + +class PrivateLinkServiceConnectionStateProperty(msrest.serialization.Model): + """Connection State of the Private Endpoint Connection. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param status: The private link service connection status. + :type status: str + :param description: The private link service connection description. + :type description: str + :ivar actions_required: Any action that is required beyond basic workflow (approve/ reject/ + disconnect). + :vartype actions_required: str + """ + + _validation = { + 'actions_required': {'readonly': True}, + } + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'actions_required': {'key': 'actionsRequired', 'type': 'str'}, + } + + def __init__( + self, + *, + status: Optional[str] = None, + description: Optional[str] = None, + **kwargs + ): + super(PrivateLinkServiceConnectionStateProperty, self).__init__(**kwargs) + self.status = status + self.description = description + self.actions_required = None + + +class RegionForOnlineOffline(msrest.serialization.Model): + """Cosmos DB region to online or offline. + + All required parameters must be populated in order to send to Azure. + + :param region: Required. Cosmos DB region, with spaces between words and each word capitalized. + :type region: str + """ + + _validation = { + 'region': {'required': True}, + } + + _attribute_map = { + 'region': {'key': 'region', 'type': 'str'}, + } + + def __init__( + self, + *, + region: str, + **kwargs + ): + super(RegionForOnlineOffline, self).__init__(**kwargs) + self.region = region + + +class RepairPostBody(msrest.serialization.Model): + """Specification of the keyspaces and tables to run repair on. + + All required parameters must be populated in order to send to Azure. + + :param keyspace: Required. The name of the keyspace that repair should be run on. + :type keyspace: str + :param tables: List of tables in the keyspace to repair. If omitted, repair all tables in the + keyspace. + :type tables: list[str] + """ + + _validation = { + 'keyspace': {'required': True}, + } + + _attribute_map = { + 'keyspace': {'key': 'keyspace', 'type': 'str'}, + 'tables': {'key': 'tables', 'type': '[str]'}, + } + + def __init__( + self, + *, + keyspace: str, + tables: Optional[List[str]] = None, + **kwargs + ): + super(RepairPostBody, self).__init__(**kwargs) + self.keyspace = keyspace + self.tables = tables + + +class RestorableDatabaseAccountGetResult(msrest.serialization.Model): + """A Azure Cosmos DB restorable database account. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource identifier of the ARM resource. + :vartype id: str + :ivar name: The name of the ARM resource. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param location: The location of the resource group to which the resource belongs. + :type location: str + :param account_name: The name of the global database account. + :type account_name: str + :param creation_time: The creation time of the restorable database account (ISO-8601 format). + :type creation_time: ~datetime.datetime + :param deletion_time: The time at which the restorable database account has been deleted + (ISO-8601 format). + :type deletion_time: ~datetime.datetime + :ivar api_type: The API type of the restorable database account. Possible values include: + "MongoDB", "Gremlin", "Cassandra", "Table", "Sql", "GremlinV2". + :vartype api_type: str or ~azure.mgmt.cosmosdb.models.ApiType + :ivar restorable_locations: List of regions where the of the database account can be restored + from. + :vartype restorable_locations: list[~azure.mgmt.cosmosdb.models.RestorableLocationResource] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'api_type': {'readonly': True}, + 'restorable_locations': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'account_name': {'key': 'properties.accountName', 'type': 'str'}, + 'creation_time': {'key': 'properties.creationTime', 'type': 'iso-8601'}, + 'deletion_time': {'key': 'properties.deletionTime', 'type': 'iso-8601'}, + 'api_type': {'key': 'properties.apiType', 'type': 'str'}, + 'restorable_locations': {'key': 'properties.restorableLocations', 'type': '[RestorableLocationResource]'}, + } + + def __init__( + self, + *, + location: Optional[str] = None, + account_name: Optional[str] = None, + creation_time: Optional[datetime.datetime] = None, + deletion_time: Optional[datetime.datetime] = None, + **kwargs + ): + super(RestorableDatabaseAccountGetResult, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.location = location + self.account_name = account_name + self.creation_time = creation_time + self.deletion_time = deletion_time + self.api_type = None + self.restorable_locations = None + + +class RestorableDatabaseAccountsListResult(msrest.serialization.Model): + """The List operation response, that contains the restorable database accounts and their properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of restorable database accounts and their properties. + :vartype value: list[~azure.mgmt.cosmosdb.models.RestorableDatabaseAccountGetResult] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[RestorableDatabaseAccountGetResult]'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableDatabaseAccountsListResult, self).__init__(**kwargs) + self.value = None + + +class RestorableLocationResource(msrest.serialization.Model): + """Properties of the regional restorable account. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar location_name: The location of the regional restorable account. + :vartype location_name: str + :ivar regional_database_account_instance_id: The instance id of the regional restorable + account. + :vartype regional_database_account_instance_id: str + :ivar creation_time: The creation time of the regional restorable database account (ISO-8601 + format). + :vartype creation_time: ~datetime.datetime + :ivar deletion_time: The time at which the regional restorable database account has been + deleted (ISO-8601 format). + :vartype deletion_time: ~datetime.datetime + """ + + _validation = { + 'location_name': {'readonly': True}, + 'regional_database_account_instance_id': {'readonly': True}, + 'creation_time': {'readonly': True}, + 'deletion_time': {'readonly': True}, + } + + _attribute_map = { + 'location_name': {'key': 'locationName', 'type': 'str'}, + 'regional_database_account_instance_id': {'key': 'regionalDatabaseAccountInstanceId', 'type': 'str'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'deletion_time': {'key': 'deletionTime', 'type': 'iso-8601'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableLocationResource, self).__init__(**kwargs) + self.location_name = None + self.regional_database_account_instance_id = None + self.creation_time = None + self.deletion_time = None + + +class RestorableMongodbCollectionGetResult(msrest.serialization.Model): + """An Azure Cosmos DB MongoDB collection event. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource Identifier of the ARM resource. + :vartype id: str + :ivar name: The name of the ARM resource. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param resource: The resource of an Azure Cosmos DB MongoDB collection event. + :type resource: ~azure.mgmt.cosmosdb.models.RestorableMongodbCollectionPropertiesResource + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'resource': {'key': 'properties.resource', 'type': 'RestorableMongodbCollectionPropertiesResource'}, + } + + def __init__( + self, + *, + resource: Optional["RestorableMongodbCollectionPropertiesResource"] = None, + **kwargs + ): + super(RestorableMongodbCollectionGetResult, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.resource = resource + + +class RestorableMongodbCollectionPropertiesResource(msrest.serialization.Model): + """The resource of an Azure Cosmos DB MongoDB collection event. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar rid: A system generated property. A unique identifier. + :vartype rid: str + :ivar operation_type: The operation type of this collection event. Possible values include: + "Create", "Replace", "Delete", "SystemOperation". + :vartype operation_type: str or ~azure.mgmt.cosmosdb.models.OperationType + :ivar event_timestamp: The time when this collection event happened. + :vartype event_timestamp: str + :ivar owner_id: The name of this MongoDB collection. + :vartype owner_id: str + :ivar owner_resource_id: The resource ID of this MongoDB collection. + :vartype owner_resource_id: str + """ + + _validation = { + 'rid': {'readonly': True}, + 'operation_type': {'readonly': True}, + 'event_timestamp': {'readonly': True}, + 'owner_id': {'readonly': True}, + 'owner_resource_id': {'readonly': True}, + } + + _attribute_map = { + 'rid': {'key': '_rid', 'type': 'str'}, + 'operation_type': {'key': 'operationType', 'type': 'str'}, + 'event_timestamp': {'key': 'eventTimestamp', 'type': 'str'}, + 'owner_id': {'key': 'ownerId', 'type': 'str'}, + 'owner_resource_id': {'key': 'ownerResourceId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableMongodbCollectionPropertiesResource, self).__init__(**kwargs) + self.rid = None + self.operation_type = None + self.event_timestamp = None + self.owner_id = None + self.owner_resource_id = None + + +class RestorableMongodbCollectionsListResult(msrest.serialization.Model): + """The List operation response, that contains the MongoDB collection events and their properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of MongoDB collection events and their properties. + :vartype value: list[~azure.mgmt.cosmosdb.models.RestorableMongodbCollectionGetResult] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[RestorableMongodbCollectionGetResult]'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableMongodbCollectionsListResult, self).__init__(**kwargs) + self.value = None + + +class RestorableMongodbDatabaseGetResult(msrest.serialization.Model): + """An Azure Cosmos DB MongoDB database event. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource Identifier of the ARM resource. + :vartype id: str + :ivar name: The name of the ARM resource. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param resource: The resource of an Azure Cosmos DB MongoDB database event. + :type resource: ~azure.mgmt.cosmosdb.models.RestorableMongodbDatabasePropertiesResource + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'resource': {'key': 'properties.resource', 'type': 'RestorableMongodbDatabasePropertiesResource'}, + } + + def __init__( + self, + *, + resource: Optional["RestorableMongodbDatabasePropertiesResource"] = None, + **kwargs + ): + super(RestorableMongodbDatabaseGetResult, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.resource = resource + + +class RestorableMongodbDatabasePropertiesResource(msrest.serialization.Model): + """The resource of an Azure Cosmos DB MongoDB database event. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar rid: A system generated property. A unique identifier. + :vartype rid: str + :ivar operation_type: The operation type of this database event. Possible values include: + "Create", "Replace", "Delete", "SystemOperation". + :vartype operation_type: str or ~azure.mgmt.cosmosdb.models.OperationType + :ivar event_timestamp: The time when this database event happened. + :vartype event_timestamp: str + :ivar owner_id: The name of this MongoDB database. + :vartype owner_id: str + :ivar owner_resource_id: The resource ID of this MongoDB database. + :vartype owner_resource_id: str + """ + + _validation = { + 'rid': {'readonly': True}, + 'operation_type': {'readonly': True}, + 'event_timestamp': {'readonly': True}, + 'owner_id': {'readonly': True}, + 'owner_resource_id': {'readonly': True}, + } + + _attribute_map = { + 'rid': {'key': '_rid', 'type': 'str'}, + 'operation_type': {'key': 'operationType', 'type': 'str'}, + 'event_timestamp': {'key': 'eventTimestamp', 'type': 'str'}, + 'owner_id': {'key': 'ownerId', 'type': 'str'}, + 'owner_resource_id': {'key': 'ownerResourceId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableMongodbDatabasePropertiesResource, self).__init__(**kwargs) + self.rid = None + self.operation_type = None + self.event_timestamp = None + self.owner_id = None + self.owner_resource_id = None + + +class RestorableMongodbDatabasesListResult(msrest.serialization.Model): + """The List operation response, that contains the MongoDB database events and their properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of MongoDB database events and their properties. + :vartype value: list[~azure.mgmt.cosmosdb.models.RestorableMongodbDatabaseGetResult] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[RestorableMongodbDatabaseGetResult]'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableMongodbDatabasesListResult, self).__init__(**kwargs) + self.value = None + + +class RestorableMongodbResourcesListResult(msrest.serialization.Model): + """The List operation response, that contains the restorable MongoDB resources. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of restorable MongoDB resources, including the database and collection names. + :vartype value: list[~azure.mgmt.cosmosdb.models.DatabaseRestoreResource] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[DatabaseRestoreResource]'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableMongodbResourcesListResult, self).__init__(**kwargs) + self.value = None + + +class RestorableSqlContainerGetResult(msrest.serialization.Model): + """An Azure Cosmos DB SQL container event. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource Identifier of the ARM resource. + :vartype id: str + :ivar name: The name of the ARM resource. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param resource: The resource of an Azure Cosmos DB SQL container event. + :type resource: ~azure.mgmt.cosmosdb.models.RestorableSqlContainerPropertiesResource + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'resource': {'key': 'properties.resource', 'type': 'RestorableSqlContainerPropertiesResource'}, + } + + def __init__( + self, + *, + resource: Optional["RestorableSqlContainerPropertiesResource"] = None, + **kwargs + ): + super(RestorableSqlContainerGetResult, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.resource = resource + + +class RestorableSqlContainerPropertiesResource(msrest.serialization.Model): + """The resource of an Azure Cosmos DB SQL container event. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar rid: A system generated property. A unique identifier. + :vartype rid: str + :ivar operation_type: The operation type of this container event. Possible values include: + "Create", "Replace", "Delete", "SystemOperation". + :vartype operation_type: str or ~azure.mgmt.cosmosdb.models.OperationType + :ivar event_timestamp: The when this container event happened. + :vartype event_timestamp: str + :ivar owner_id: The name of this SQL container. + :vartype owner_id: str + :ivar owner_resource_id: The resource ID of this SQL container. + :vartype owner_resource_id: str + :param container: Cosmos DB SQL container resource object. + :type container: ~azure.mgmt.cosmosdb.models.RestorableSqlContainerPropertiesResourceContainer + """ + + _validation = { + 'rid': {'readonly': True}, + 'operation_type': {'readonly': True}, + 'event_timestamp': {'readonly': True}, + 'owner_id': {'readonly': True}, + 'owner_resource_id': {'readonly': True}, + } + + _attribute_map = { + 'rid': {'key': '_rid', 'type': 'str'}, + 'operation_type': {'key': 'operationType', 'type': 'str'}, + 'event_timestamp': {'key': 'eventTimestamp', 'type': 'str'}, + 'owner_id': {'key': 'ownerId', 'type': 'str'}, + 'owner_resource_id': {'key': 'ownerResourceId', 'type': 'str'}, + 'container': {'key': 'container', 'type': 'RestorableSqlContainerPropertiesResourceContainer'}, + } + + def __init__( + self, + *, + container: Optional["RestorableSqlContainerPropertiesResourceContainer"] = None, + **kwargs + ): + super(RestorableSqlContainerPropertiesResource, self).__init__(**kwargs) + self.rid = None + self.operation_type = None + self.event_timestamp = None + self.owner_id = None + self.owner_resource_id = None + self.container = container + + +class SqlContainerResource(msrest.serialization.Model): + """Cosmos DB SQL container resource object. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. Name of the Cosmos DB SQL container. + :type id: str + :param indexing_policy: The configuration of the indexing policy. By default, the indexing is + automatic for all document paths within the container. + :type indexing_policy: ~azure.mgmt.cosmosdb.models.IndexingPolicy + :param partition_key: The configuration of the partition key to be used for partitioning data + into multiple partitions. + :type partition_key: ~azure.mgmt.cosmosdb.models.ContainerPartitionKey + :param default_ttl: Default time to live. + :type default_ttl: int + :param unique_key_policy: The unique key policy configuration for specifying uniqueness + constraints on documents in the collection in the Azure Cosmos DB service. + :type unique_key_policy: ~azure.mgmt.cosmosdb.models.UniqueKeyPolicy + :param conflict_resolution_policy: The conflict resolution policy for the container. + :type conflict_resolution_policy: ~azure.mgmt.cosmosdb.models.ConflictResolutionPolicy + :param analytical_storage_ttl: Analytical TTL. + :type analytical_storage_ttl: long + """ + + _validation = { + 'id': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'indexing_policy': {'key': 'indexingPolicy', 'type': 'IndexingPolicy'}, + 'partition_key': {'key': 'partitionKey', 'type': 'ContainerPartitionKey'}, + 'default_ttl': {'key': 'defaultTtl', 'type': 'int'}, + 'unique_key_policy': {'key': 'uniqueKeyPolicy', 'type': 'UniqueKeyPolicy'}, + 'conflict_resolution_policy': {'key': 'conflictResolutionPolicy', 'type': 'ConflictResolutionPolicy'}, + 'analytical_storage_ttl': {'key': 'analyticalStorageTtl', 'type': 'long'}, + } + + def __init__( + self, + *, + id: str, + indexing_policy: Optional["IndexingPolicy"] = None, + partition_key: Optional["ContainerPartitionKey"] = None, + default_ttl: Optional[int] = None, + unique_key_policy: Optional["UniqueKeyPolicy"] = None, + conflict_resolution_policy: Optional["ConflictResolutionPolicy"] = None, + analytical_storage_ttl: Optional[int] = None, + **kwargs + ): + super(SqlContainerResource, self).__init__(**kwargs) + self.id = id + self.indexing_policy = indexing_policy + self.partition_key = partition_key + self.default_ttl = default_ttl + self.unique_key_policy = unique_key_policy + self.conflict_resolution_policy = conflict_resolution_policy + self.analytical_storage_ttl = analytical_storage_ttl + + +class RestorableSqlContainerPropertiesResourceContainer(ExtendedResourceProperties, SqlContainerResource): + """Cosmos DB SQL container resource object. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. Name of the Cosmos DB SQL container. + :type id: str + :param indexing_policy: The configuration of the indexing policy. By default, the indexing is + automatic for all document paths within the container. + :type indexing_policy: ~azure.mgmt.cosmosdb.models.IndexingPolicy + :param partition_key: The configuration of the partition key to be used for partitioning data + into multiple partitions. + :type partition_key: ~azure.mgmt.cosmosdb.models.ContainerPartitionKey + :param default_ttl: Default time to live. + :type default_ttl: int + :param unique_key_policy: The unique key policy configuration for specifying uniqueness + constraints on documents in the collection in the Azure Cosmos DB service. + :type unique_key_policy: ~azure.mgmt.cosmosdb.models.UniqueKeyPolicy + :param conflict_resolution_policy: The conflict resolution policy for the container. + :type conflict_resolution_policy: ~azure.mgmt.cosmosdb.models.ConflictResolutionPolicy + :param analytical_storage_ttl: Analytical TTL. + :type analytical_storage_ttl: long + :ivar rid: A system generated property. A unique identifier. + :vartype rid: str + :ivar ts: A system generated property that denotes the last updated timestamp of the resource. + :vartype ts: float + :ivar etag: A system generated property representing the resource etag required for optimistic + concurrency control. + :vartype etag: str + :ivar self_property: A system generated property that specifies the addressable path of the + container resource. + :vartype self_property: str + """ + + _validation = { + 'id': {'required': True}, + 'rid': {'readonly': True}, + 'ts': {'readonly': True}, + 'etag': {'readonly': True}, + 'self_property': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'indexing_policy': {'key': 'indexingPolicy', 'type': 'IndexingPolicy'}, + 'partition_key': {'key': 'partitionKey', 'type': 'ContainerPartitionKey'}, + 'default_ttl': {'key': 'defaultTtl', 'type': 'int'}, + 'unique_key_policy': {'key': 'uniqueKeyPolicy', 'type': 'UniqueKeyPolicy'}, + 'conflict_resolution_policy': {'key': 'conflictResolutionPolicy', 'type': 'ConflictResolutionPolicy'}, + 'analytical_storage_ttl': {'key': 'analyticalStorageTtl', 'type': 'long'}, + 'rid': {'key': '_rid', 'type': 'str'}, + 'ts': {'key': '_ts', 'type': 'float'}, + 'etag': {'key': '_etag', 'type': 'str'}, + 'self_property': {'key': '_self', 'type': 'str'}, + } + + def __init__( + self, + *, + id: str, + indexing_policy: Optional["IndexingPolicy"] = None, + partition_key: Optional["ContainerPartitionKey"] = None, + default_ttl: Optional[int] = None, + unique_key_policy: Optional["UniqueKeyPolicy"] = None, + conflict_resolution_policy: Optional["ConflictResolutionPolicy"] = None, + analytical_storage_ttl: Optional[int] = None, + **kwargs + ): + super(RestorableSqlContainerPropertiesResourceContainer, self).__init__(id=id, indexing_policy=indexing_policy, partition_key=partition_key, default_ttl=default_ttl, unique_key_policy=unique_key_policy, conflict_resolution_policy=conflict_resolution_policy, analytical_storage_ttl=analytical_storage_ttl, **kwargs) + self.id = id + self.indexing_policy = indexing_policy + self.partition_key = partition_key + self.default_ttl = default_ttl + self.unique_key_policy = unique_key_policy + self.conflict_resolution_policy = conflict_resolution_policy + self.analytical_storage_ttl = analytical_storage_ttl + self.self_property = None + self.rid = None + self.ts = None + self.etag = None + self.self_property = None + + +class RestorableSqlContainersListResult(msrest.serialization.Model): + """The List operation response, that contains the SQL container events and their properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of SQL container events and their properties. + :vartype value: list[~azure.mgmt.cosmosdb.models.RestorableSqlContainerGetResult] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[RestorableSqlContainerGetResult]'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableSqlContainersListResult, self).__init__(**kwargs) + self.value = None + + +class RestorableSqlDatabaseGetResult(msrest.serialization.Model): + """An Azure Cosmos DB SQL database event. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource Identifier of the ARM resource. + :vartype id: str + :ivar name: The name of the ARM resource. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param resource: The resource of an Azure Cosmos DB SQL database event. + :type resource: ~azure.mgmt.cosmosdb.models.RestorableSqlDatabasePropertiesResource + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'resource': {'key': 'properties.resource', 'type': 'RestorableSqlDatabasePropertiesResource'}, + } + + def __init__( + self, + *, + resource: Optional["RestorableSqlDatabasePropertiesResource"] = None, + **kwargs + ): + super(RestorableSqlDatabaseGetResult, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.resource = resource + + +class RestorableSqlDatabasePropertiesResource(msrest.serialization.Model): + """The resource of an Azure Cosmos DB SQL database event. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar rid: A system generated property. A unique identifier. + :vartype rid: str + :ivar operation_type: The operation type of this database event. Possible values include: + "Create", "Replace", "Delete", "SystemOperation". + :vartype operation_type: str or ~azure.mgmt.cosmosdb.models.OperationType + :ivar event_timestamp: The time when this database event happened. + :vartype event_timestamp: str + :ivar owner_id: The name of the SQL database. + :vartype owner_id: str + :ivar owner_resource_id: The resource ID of the SQL database. + :vartype owner_resource_id: str + :param database: Cosmos DB SQL database resource object. + :type database: ~azure.mgmt.cosmosdb.models.RestorableSqlDatabasePropertiesResourceDatabase + """ + + _validation = { + 'rid': {'readonly': True}, + 'operation_type': {'readonly': True}, + 'event_timestamp': {'readonly': True}, + 'owner_id': {'readonly': True}, + 'owner_resource_id': {'readonly': True}, + } + + _attribute_map = { + 'rid': {'key': '_rid', 'type': 'str'}, + 'operation_type': {'key': 'operationType', 'type': 'str'}, + 'event_timestamp': {'key': 'eventTimestamp', 'type': 'str'}, + 'owner_id': {'key': 'ownerId', 'type': 'str'}, + 'owner_resource_id': {'key': 'ownerResourceId', 'type': 'str'}, + 'database': {'key': 'database', 'type': 'RestorableSqlDatabasePropertiesResourceDatabase'}, + } + + def __init__( + self, + *, + database: Optional["RestorableSqlDatabasePropertiesResourceDatabase"] = None, + **kwargs + ): + super(RestorableSqlDatabasePropertiesResource, self).__init__(**kwargs) + self.rid = None + self.operation_type = None + self.event_timestamp = None + self.owner_id = None + self.owner_resource_id = None + self.database = database + + +class SqlDatabaseResource(msrest.serialization.Model): + """Cosmos DB SQL database resource object. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. Name of the Cosmos DB SQL database. + :type id: str + """ + + _validation = { + 'id': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__( + self, + *, + id: str, + **kwargs + ): + super(SqlDatabaseResource, self).__init__(**kwargs) + self.id = id + + +class RestorableSqlDatabasePropertiesResourceDatabase(SqlDatabaseResource, ExtendedResourceProperties): + """Cosmos DB SQL database resource object. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar rid: A system generated property. A unique identifier. + :vartype rid: str + :ivar ts: A system generated property that denotes the last updated timestamp of the resource. + :vartype ts: float + :ivar etag: A system generated property representing the resource etag required for optimistic + concurrency control. + :vartype etag: str + :param id: Required. Name of the Cosmos DB SQL database. + :type id: str + :ivar colls: A system generated property that specified the addressable path of the collections + resource. + :vartype colls: str + :ivar users: A system generated property that specifies the addressable path of the users + resource. + :vartype users: str + :ivar self_property: A system generated property that specifies the addressable path of the + database resource. + :vartype self_property: str + """ + + _validation = { + 'rid': {'readonly': True}, + 'ts': {'readonly': True}, + 'etag': {'readonly': True}, + 'id': {'required': True}, + 'colls': {'readonly': True}, + 'users': {'readonly': True}, + 'self_property': {'readonly': True}, + } + + _attribute_map = { + 'rid': {'key': '_rid', 'type': 'str'}, + 'ts': {'key': '_ts', 'type': 'float'}, + 'etag': {'key': '_etag', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'colls': {'key': '_colls', 'type': 'str'}, + 'users': {'key': '_users', 'type': 'str'}, + 'self_property': {'key': '_self', 'type': 'str'}, + } + + def __init__( + self, + *, + id: str, + **kwargs + ): + super(RestorableSqlDatabasePropertiesResourceDatabase, self).__init__(id=id, **kwargs) + self.rid = None + self.ts = None + self.etag = None + self.colls = None + self.users = None + self.self_property = None + self.id = id + self.colls = None + self.users = None + self.self_property = None + + +class RestorableSqlDatabasesListResult(msrest.serialization.Model): + """The List operation response, that contains the SQL database events and their properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of SQL database events and their properties. + :vartype value: list[~azure.mgmt.cosmosdb.models.RestorableSqlDatabaseGetResult] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[RestorableSqlDatabaseGetResult]'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableSqlDatabasesListResult, self).__init__(**kwargs) + self.value = None + + +class RestorableSqlResourcesListResult(msrest.serialization.Model): + """The List operation response, that contains the restorable SQL resources. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of restorable SQL resources, including the database and collection names. + :vartype value: list[~azure.mgmt.cosmosdb.models.DatabaseRestoreResource] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[DatabaseRestoreResource]'}, + } + + def __init__( + self, + **kwargs + ): + super(RestorableSqlResourcesListResult, self).__init__(**kwargs) + self.value = None -class PrivateLinkResourceListResult(msrest.serialization.Model): - """A list of private link resources. +class RestoreParameters(msrest.serialization.Model): + """Parameters to indicate the information about the restore. - :param value: Array of private link resources. - :type value: list[~azure.mgmt.cosmosdb.models.PrivateLinkResource] + :param restore_mode: Describes the mode of the restore. Possible values include: "PointInTime". + :type restore_mode: str or ~azure.mgmt.cosmosdb.models.RestoreMode + :param restore_source: The id of the restorable database account from which the restore has to + be initiated. For example: + /subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts/{restorableDatabaseAccountName}. + :type restore_source: str + :param restore_timestamp_in_utc: Time to which the account has to be restored (ISO-8601 + format). + :type restore_timestamp_in_utc: ~datetime.datetime + :param databases_to_restore: List of specific databases available for restore. + :type databases_to_restore: list[~azure.mgmt.cosmosdb.models.DatabaseRestoreResource] """ _attribute_map = { - 'value': {'key': 'value', 'type': '[PrivateLinkResource]'}, + 'restore_mode': {'key': 'restoreMode', 'type': 'str'}, + 'restore_source': {'key': 'restoreSource', 'type': 'str'}, + 'restore_timestamp_in_utc': {'key': 'restoreTimestampInUtc', 'type': 'iso-8601'}, + 'databases_to_restore': {'key': 'databasesToRestore', 'type': '[DatabaseRestoreResource]'}, } def __init__( self, *, - value: Optional[List["PrivateLinkResource"]] = None, + restore_mode: Optional[Union[str, "RestoreMode"]] = None, + restore_source: Optional[str] = None, + restore_timestamp_in_utc: Optional[datetime.datetime] = None, + databases_to_restore: Optional[List["DatabaseRestoreResource"]] = None, **kwargs ): - super(PrivateLinkResourceListResult, self).__init__(**kwargs) - self.value = value + super(RestoreParameters, self).__init__(**kwargs) + self.restore_mode = restore_mode + self.restore_source = restore_source + self.restore_timestamp_in_utc = restore_timestamp_in_utc + self.databases_to_restore = databases_to_restore -class PrivateLinkServiceConnectionStateProperty(msrest.serialization.Model): - """Connection State of the Private Endpoint Connection. +class RestoreReqeustDatabaseAccountCreateUpdateProperties(DatabaseAccountCreateUpdateProperties): + """Properties to restore Azure Cosmos DB database account. Variables are only populated by the server, and will be ignored when sending a request. - :param status: The private link service connection status. - :type status: str - :param description: The private link service connection description. - :type description: str - :ivar actions_required: Any action that is required beyond basic workflow (approve/ reject/ - disconnect). - :vartype actions_required: str + All required parameters must be populated in order to send to Azure. + + :param consistency_policy: The consistency policy for the Cosmos DB account. + :type consistency_policy: ~azure.mgmt.cosmosdb.models.ConsistencyPolicy + :param locations: Required. An array that contains the georeplication locations enabled for the + Cosmos DB account. + :type locations: list[~azure.mgmt.cosmosdb.models.Location] + :ivar database_account_offer_type: Required. The offer type for the database. Default value: + "Standard". + :vartype database_account_offer_type: str + :param ip_rules: List of IpRules. + :type ip_rules: list[~azure.mgmt.cosmosdb.models.IpAddressOrRange] + :param is_virtual_network_filter_enabled: Flag to indicate whether to enable/disable Virtual + Network ACL rules. + :type is_virtual_network_filter_enabled: bool + :param enable_automatic_failover: Enables automatic failover of the write region in the rare + event that the region is unavailable due to an outage. Automatic failover will result in a new + write region for the account and is chosen based on the failover priorities configured for the + account. + :type enable_automatic_failover: bool + :param capabilities: List of Cosmos DB capabilities for the account. + :type capabilities: list[~azure.mgmt.cosmosdb.models.Capability] + :param virtual_network_rules: List of Virtual Network ACL rules configured for the Cosmos DB + account. + :type virtual_network_rules: list[~azure.mgmt.cosmosdb.models.VirtualNetworkRule] + :param enable_multiple_write_locations: Enables the account to write in multiple locations. + :type enable_multiple_write_locations: bool + :param enable_cassandra_connector: Enables the cassandra connector on the Cosmos DB C* account. + :type enable_cassandra_connector: bool + :param connector_offer: The cassandra connector offer type for the Cosmos DB database C* + account. Possible values include: "Small". + :type connector_offer: str or ~azure.mgmt.cosmosdb.models.ConnectorOffer + :param disable_key_based_metadata_write_access: Disable write operations on metadata resources + (databases, containers, throughput) via account keys. + :type disable_key_based_metadata_write_access: bool + :param key_vault_key_uri: The URI of the key vault. + :type key_vault_key_uri: str + :param default_identity: The default identity for accessing key vault used in features like + customer managed keys. The default identity needs to be explicitly set by the users. It can be + "FirstPartyIdentity", "SystemAssignedIdentity" and more. + :type default_identity: str + :param public_network_access: Whether requests from Public Network are allowed. Possible values + include: "Enabled", "Disabled". + :type public_network_access: str or ~azure.mgmt.cosmosdb.models.PublicNetworkAccess + :param enable_free_tier: Flag to indicate whether Free Tier is enabled. + :type enable_free_tier: bool + :param api_properties: API specific properties. Currently, supported only for MongoDB API. + :type api_properties: ~azure.mgmt.cosmosdb.models.ApiProperties + :param enable_analytical_storage: Flag to indicate whether to enable storage analytics. + :type enable_analytical_storage: bool + :param create_mode: Required. Enum to indicate the mode of account creation.Constant filled by + server. Possible values include: "Default", "Restore". Default value: "Default". + :type create_mode: str or ~azure.mgmt.cosmosdb.models.CreateMode + :param backup_policy: The object representing the policy for taking backups on an account. + :type backup_policy: ~azure.mgmt.cosmosdb.models.BackupPolicy + :param cors: The CORS policy for the Cosmos DB database account. + :type cors: list[~azure.mgmt.cosmosdb.models.CorsPolicy] + :param network_acl_bypass: Indicates what services are allowed to bypass firewall checks. + Possible values include: "None", "AzureServices". + :type network_acl_bypass: str or ~azure.mgmt.cosmosdb.models.NetworkAclBypass + :param network_acl_bypass_resource_ids: An array that contains the Resource Ids for Network Acl + Bypass for the Cosmos DB account. + :type network_acl_bypass_resource_ids: list[str] + :param restore_parameters: Parameters to indicate the information about the restore. + :type restore_parameters: ~azure.mgmt.cosmosdb.models.RestoreParameters """ _validation = { - 'actions_required': {'readonly': True}, + 'locations': {'required': True}, + 'database_account_offer_type': {'required': True, 'constant': True}, + 'create_mode': {'required': True}, + } + + _attribute_map = { + 'consistency_policy': {'key': 'consistencyPolicy', 'type': 'ConsistencyPolicy'}, + 'locations': {'key': 'locations', 'type': '[Location]'}, + 'database_account_offer_type': {'key': 'databaseAccountOfferType', 'type': 'str'}, + 'ip_rules': {'key': 'ipRules', 'type': '[IpAddressOrRange]'}, + 'is_virtual_network_filter_enabled': {'key': 'isVirtualNetworkFilterEnabled', 'type': 'bool'}, + 'enable_automatic_failover': {'key': 'enableAutomaticFailover', 'type': 'bool'}, + 'capabilities': {'key': 'capabilities', 'type': '[Capability]'}, + 'virtual_network_rules': {'key': 'virtualNetworkRules', 'type': '[VirtualNetworkRule]'}, + 'enable_multiple_write_locations': {'key': 'enableMultipleWriteLocations', 'type': 'bool'}, + 'enable_cassandra_connector': {'key': 'enableCassandraConnector', 'type': 'bool'}, + 'connector_offer': {'key': 'connectorOffer', 'type': 'str'}, + 'disable_key_based_metadata_write_access': {'key': 'disableKeyBasedMetadataWriteAccess', 'type': 'bool'}, + 'key_vault_key_uri': {'key': 'keyVaultKeyUri', 'type': 'str'}, + 'default_identity': {'key': 'defaultIdentity', 'type': 'str'}, + 'public_network_access': {'key': 'publicNetworkAccess', 'type': 'str'}, + 'enable_free_tier': {'key': 'enableFreeTier', 'type': 'bool'}, + 'api_properties': {'key': 'apiProperties', 'type': 'ApiProperties'}, + 'enable_analytical_storage': {'key': 'enableAnalyticalStorage', 'type': 'bool'}, + 'create_mode': {'key': 'createMode', 'type': 'str'}, + 'backup_policy': {'key': 'backupPolicy', 'type': 'BackupPolicy'}, + 'cors': {'key': 'cors', 'type': '[CorsPolicy]'}, + 'network_acl_bypass': {'key': 'networkAclBypass', 'type': 'str'}, + 'network_acl_bypass_resource_ids': {'key': 'networkAclBypassResourceIds', 'type': '[str]'}, + 'restore_parameters': {'key': 'restoreParameters', 'type': 'RestoreParameters'}, } + database_account_offer_type = "Standard" + + def __init__( + self, + *, + locations: List["Location"], + consistency_policy: Optional["ConsistencyPolicy"] = None, + ip_rules: Optional[List["IpAddressOrRange"]] = None, + is_virtual_network_filter_enabled: Optional[bool] = None, + enable_automatic_failover: Optional[bool] = None, + capabilities: Optional[List["Capability"]] = None, + virtual_network_rules: Optional[List["VirtualNetworkRule"]] = None, + enable_multiple_write_locations: Optional[bool] = None, + enable_cassandra_connector: Optional[bool] = None, + connector_offer: Optional[Union[str, "ConnectorOffer"]] = None, + disable_key_based_metadata_write_access: Optional[bool] = None, + key_vault_key_uri: Optional[str] = None, + default_identity: Optional[str] = None, + public_network_access: Optional[Union[str, "PublicNetworkAccess"]] = None, + enable_free_tier: Optional[bool] = None, + api_properties: Optional["ApiProperties"] = None, + enable_analytical_storage: Optional[bool] = None, + backup_policy: Optional["BackupPolicy"] = None, + cors: Optional[List["CorsPolicy"]] = None, + network_acl_bypass: Optional[Union[str, "NetworkAclBypass"]] = None, + network_acl_bypass_resource_ids: Optional[List[str]] = None, + restore_parameters: Optional["RestoreParameters"] = None, + **kwargs + ): + super(RestoreReqeustDatabaseAccountCreateUpdateProperties, self).__init__(consistency_policy=consistency_policy, locations=locations, ip_rules=ip_rules, is_virtual_network_filter_enabled=is_virtual_network_filter_enabled, enable_automatic_failover=enable_automatic_failover, capabilities=capabilities, virtual_network_rules=virtual_network_rules, enable_multiple_write_locations=enable_multiple_write_locations, enable_cassandra_connector=enable_cassandra_connector, connector_offer=connector_offer, disable_key_based_metadata_write_access=disable_key_based_metadata_write_access, key_vault_key_uri=key_vault_key_uri, default_identity=default_identity, public_network_access=public_network_access, enable_free_tier=enable_free_tier, api_properties=api_properties, enable_analytical_storage=enable_analytical_storage, backup_policy=backup_policy, cors=cors, network_acl_bypass=network_acl_bypass, network_acl_bypass_resource_ids=network_acl_bypass_resource_ids, **kwargs) + self.create_mode = 'Restore' # type: str + self.restore_parameters = restore_parameters + + +class SeedNode(msrest.serialization.Model): + """SeedNode. + + :param ip_address: IP address of this seed node. + :type ip_address: str + """ + _attribute_map = { - 'status': {'key': 'status', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - 'actions_required': {'key': 'actionsRequired', 'type': 'str'}, + 'ip_address': {'key': 'ipAddress', 'type': 'str'}, } def __init__( self, *, - status: Optional[str] = None, - description: Optional[str] = None, + ip_address: Optional[str] = None, **kwargs ): - super(PrivateLinkServiceConnectionStateProperty, self).__init__(**kwargs) - self.status = status - self.description = description - self.actions_required = None + super(SeedNode, self).__init__(**kwargs) + self.ip_address = ip_address -class ProxyResource(Resource): - """The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location. +class ServiceResource(ARMProxyResource): + """Properties for the database account. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource ID for the resource. Ex - - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :ivar id: The unique resource identifier of the database account. :vartype id: str - :ivar name: The name of the resource. + :ivar name: The name of the database account. :vartype name: str - :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or - "Microsoft.Storage/storageAccounts". + :ivar type: The type of Azure resource. :vartype type: str + :param properties: Services response resource. + :type properties: ~azure.mgmt.cosmosdb.models.ServiceResourceProperties """ _validation = { @@ -4687,40 +6982,42 @@ class ProxyResource(Resource): 'id': {'key': 'id', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'ServiceResourceProperties'}, } def __init__( self, + *, + properties: Optional["ServiceResourceProperties"] = None, **kwargs ): - super(ProxyResource, self).__init__(**kwargs) + super(ServiceResource, self).__init__(**kwargs) + self.properties = properties -class RegionForOnlineOffline(msrest.serialization.Model): - """Cosmos DB region to online or offline. +class ServiceResourceListResult(msrest.serialization.Model): + """The List operation response, that contains the Service Resource and their properties. - All required parameters must be populated in order to send to Azure. + Variables are only populated by the server, and will be ignored when sending a request. - :param region: Required. Cosmos DB region, with spaces between words and each word capitalized. - :type region: str + :ivar value: List of Service Resource and their properties. + :vartype value: list[~azure.mgmt.cosmosdb.models.ServiceResource] """ _validation = { - 'region': {'required': True}, + 'value': {'readonly': True}, } _attribute_map = { - 'region': {'key': 'region', 'type': 'str'}, + 'value': {'key': 'value', 'type': '[ServiceResource]'}, } def __init__( self, - *, - region: str, **kwargs ): - super(RegionForOnlineOffline, self).__init__(**kwargs) - self.region = region + super(ServiceResourceListResult, self).__init__(**kwargs) + self.value = None class SpatialSpec(msrest.serialization.Model): @@ -4772,6 +7069,8 @@ class SqlContainerCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a container. :type resource: ~azure.mgmt.cosmosdb.models.SqlContainerResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -4792,6 +7091,7 @@ class SqlContainerCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'SqlContainerResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -4802,10 +7102,11 @@ def __init__( resource: "SqlContainerResource", location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, options: Optional["CreateUpdateOptions"] = None, **kwargs ): - super(SqlContainerCreateUpdateParameters, self).__init__(location=location, tags=tags, **kwargs) + super(SqlContainerCreateUpdateParameters, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource self.options = options @@ -4835,66 +7136,6 @@ def __init__( super(SqlContainerGetPropertiesOptions, self).__init__(throughput=throughput, autoscale_settings=autoscale_settings, **kwargs) -class SqlContainerResource(msrest.serialization.Model): - """Cosmos DB SQL container resource object. - - All required parameters must be populated in order to send to Azure. - - :param id: Required. Name of the Cosmos DB SQL container. - :type id: str - :param indexing_policy: The configuration of the indexing policy. By default, the indexing is - automatic for all document paths within the container. - :type indexing_policy: ~azure.mgmt.cosmosdb.models.IndexingPolicy - :param partition_key: The configuration of the partition key to be used for partitioning data - into multiple partitions. - :type partition_key: ~azure.mgmt.cosmosdb.models.ContainerPartitionKey - :param default_ttl: Default time to live. - :type default_ttl: int - :param unique_key_policy: The unique key policy configuration for specifying uniqueness - constraints on documents in the collection in the Azure Cosmos DB service. - :type unique_key_policy: ~azure.mgmt.cosmosdb.models.UniqueKeyPolicy - :param conflict_resolution_policy: The conflict resolution policy for the container. - :type conflict_resolution_policy: ~azure.mgmt.cosmosdb.models.ConflictResolutionPolicy - :param analytical_storage_ttl: Analytical TTL. - :type analytical_storage_ttl: long - """ - - _validation = { - 'id': {'required': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'indexing_policy': {'key': 'indexingPolicy', 'type': 'IndexingPolicy'}, - 'partition_key': {'key': 'partitionKey', 'type': 'ContainerPartitionKey'}, - 'default_ttl': {'key': 'defaultTtl', 'type': 'int'}, - 'unique_key_policy': {'key': 'uniqueKeyPolicy', 'type': 'UniqueKeyPolicy'}, - 'conflict_resolution_policy': {'key': 'conflictResolutionPolicy', 'type': 'ConflictResolutionPolicy'}, - 'analytical_storage_ttl': {'key': 'analyticalStorageTtl', 'type': 'long'}, - } - - def __init__( - self, - *, - id: str, - indexing_policy: Optional["IndexingPolicy"] = None, - partition_key: Optional["ContainerPartitionKey"] = None, - default_ttl: Optional[int] = None, - unique_key_policy: Optional["UniqueKeyPolicy"] = None, - conflict_resolution_policy: Optional["ConflictResolutionPolicy"] = None, - analytical_storage_ttl: Optional[int] = None, - **kwargs - ): - super(SqlContainerResource, self).__init__(**kwargs) - self.id = id - self.indexing_policy = indexing_policy - self.partition_key = partition_key - self.default_ttl = default_ttl - self.unique_key_policy = unique_key_policy - self.conflict_resolution_policy = conflict_resolution_policy - self.analytical_storage_ttl = analytical_storage_ttl - - class SqlContainerGetPropertiesResource(ExtendedResourceProperties, SqlContainerResource): """SqlContainerGetPropertiesResource. @@ -4993,17 +7234,18 @@ class SqlContainerGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.SqlContainerGetPropertiesResource - :ivar options: Cosmos DB options resource object. - :vartype options: ~azure.mgmt.cosmosdb.models.OptionsResource + :param options: + :type options: ~azure.mgmt.cosmosdb.models.SqlContainerGetPropertiesOptions """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'options': {'readonly': True}, } _attribute_map = { @@ -5012,8 +7254,9 @@ class SqlContainerGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'SqlContainerGetPropertiesResource'}, - 'options': {'key': 'properties.options', 'type': 'OptionsResource'}, + 'options': {'key': 'properties.options', 'type': 'SqlContainerGetPropertiesOptions'}, } def __init__( @@ -5021,12 +7264,14 @@ def __init__( *, location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, resource: Optional["SqlContainerGetPropertiesResource"] = None, + options: Optional["SqlContainerGetPropertiesOptions"] = None, **kwargs ): - super(SqlContainerGetResults, self).__init__(location=location, tags=tags, **kwargs) + super(SqlContainerGetResults, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource - self.options = None + self.options = options class SqlContainerListResult(msrest.serialization.Model): @@ -5076,6 +7321,8 @@ class SqlDatabaseCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a SQL database. :type resource: ~azure.mgmt.cosmosdb.models.SqlDatabaseResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -5096,6 +7343,7 @@ class SqlDatabaseCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'SqlDatabaseResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -5106,10 +7354,11 @@ def __init__( resource: "SqlDatabaseResource", location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, options: Optional["CreateUpdateOptions"] = None, **kwargs ): - super(SqlDatabaseCreateUpdateParameters, self).__init__(location=location, tags=tags, **kwargs) + super(SqlDatabaseCreateUpdateParameters, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource self.options = options @@ -5122,48 +7371,21 @@ class SqlDatabaseGetPropertiesOptions(OptionsResource): :type throughput: int :param autoscale_settings: Specifies the Autoscale settings. :type autoscale_settings: ~azure.mgmt.cosmosdb.models.AutoscaleSettings - """ - - _attribute_map = { - 'throughput': {'key': 'throughput', 'type': 'int'}, - 'autoscale_settings': {'key': 'autoscaleSettings', 'type': 'AutoscaleSettings'}, - } - - def __init__( - self, - *, - throughput: Optional[int] = None, - autoscale_settings: Optional["AutoscaleSettings"] = None, - **kwargs - ): - super(SqlDatabaseGetPropertiesOptions, self).__init__(throughput=throughput, autoscale_settings=autoscale_settings, **kwargs) - - -class SqlDatabaseResource(msrest.serialization.Model): - """Cosmos DB SQL database resource object. - - All required parameters must be populated in order to send to Azure. - - :param id: Required. Name of the Cosmos DB SQL database. - :type id: str - """ - - _validation = { - 'id': {'required': True}, - } + """ _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, + 'throughput': {'key': 'throughput', 'type': 'int'}, + 'autoscale_settings': {'key': 'autoscaleSettings', 'type': 'AutoscaleSettings'}, } def __init__( self, *, - id: str, + throughput: Optional[int] = None, + autoscale_settings: Optional["AutoscaleSettings"] = None, **kwargs ): - super(SqlDatabaseResource, self).__init__(**kwargs) - self.id = id + super(SqlDatabaseGetPropertiesOptions, self).__init__(throughput=throughput, autoscale_settings=autoscale_settings, **kwargs) class SqlDatabaseGetPropertiesResource(SqlDatabaseResource, ExtendedResourceProperties): @@ -5245,17 +7467,18 @@ class SqlDatabaseGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.SqlDatabaseGetPropertiesResource - :ivar options: Cosmos DB options resource object. - :vartype options: ~azure.mgmt.cosmosdb.models.OptionsResource + :param options: + :type options: ~azure.mgmt.cosmosdb.models.SqlDatabaseGetPropertiesOptions """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'options': {'readonly': True}, } _attribute_map = { @@ -5264,8 +7487,9 @@ class SqlDatabaseGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'SqlDatabaseGetPropertiesResource'}, - 'options': {'key': 'properties.options', 'type': 'OptionsResource'}, + 'options': {'key': 'properties.options', 'type': 'SqlDatabaseGetPropertiesOptions'}, } def __init__( @@ -5273,12 +7497,14 @@ def __init__( *, location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, resource: Optional["SqlDatabaseGetPropertiesResource"] = None, + options: Optional["SqlDatabaseGetPropertiesOptions"] = None, **kwargs ): - super(SqlDatabaseGetResults, self).__init__(location=location, tags=tags, **kwargs) + super(SqlDatabaseGetResults, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource - self.options = None + self.options = options class SqlDatabaseListResult(msrest.serialization.Model): @@ -5306,6 +7532,365 @@ def __init__( self.value = None +class SqlDedicatedGatewayRegionalServiceResource(RegionalServiceResource): + """Resource for a regional service location. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar name: The regional service name. + :vartype name: str + :ivar location: The location name. + :vartype location: str + :ivar status: Describes the status of a service. Possible values include: "Creating", + "Running", "Updating", "Deleting", "Error", "Stopped". + :vartype status: str or ~azure.mgmt.cosmosdb.models.ServiceStatus + :ivar sql_dedicated_gateway_endpoint: The regional endpoint for SqlDedicatedGateway. + :vartype sql_dedicated_gateway_endpoint: str + """ + + _validation = { + 'name': {'readonly': True}, + 'location': {'readonly': True}, + 'status': {'readonly': True}, + 'sql_dedicated_gateway_endpoint': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'sql_dedicated_gateway_endpoint': {'key': 'sqlDedicatedGatewayEndpoint', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SqlDedicatedGatewayRegionalServiceResource, self).__init__(**kwargs) + self.sql_dedicated_gateway_endpoint = None + + +class SqlDedicatedGatewayServiceResource(msrest.serialization.Model): + """Describes the service response property for SqlDedicatedGateway. + + :param properties: Properties for SqlDedicatedGatewayServiceResource. + :type properties: ~azure.mgmt.cosmosdb.models.SqlDedicatedGatewayServiceResourceProperties + """ + + _attribute_map = { + 'properties': {'key': 'properties', 'type': 'SqlDedicatedGatewayServiceResourceProperties'}, + } + + def __init__( + self, + *, + properties: Optional["SqlDedicatedGatewayServiceResourceProperties"] = None, + **kwargs + ): + super(SqlDedicatedGatewayServiceResource, self).__init__(**kwargs) + self.properties = properties + + +class SqlDedicatedGatewayServiceResourceProperties(ServiceResourceProperties): + """Properties for SqlDedicatedGatewayServiceResource. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :param additional_properties: Unmatched properties from the message are deserialized to this + collection. + :type additional_properties: dict[str, object] + :ivar creation_time: Time of the last state change (ISO-8601 format). + :vartype creation_time: ~datetime.datetime + :param instance_size: Instance type for the service. Possible values include: "Cosmos.D4s", + "Cosmos.D8s", "Cosmos.D16s". + :type instance_size: str or ~azure.mgmt.cosmosdb.models.ServiceSize + :param instance_count: Instance count for the service. + :type instance_count: int + :param service_type: Required. ServiceType for the service.Constant filled by server. Possible + values include: "SqlDedicatedGateway", "DataTransfer". + :type service_type: str or ~azure.mgmt.cosmosdb.models.ServiceType + :ivar status: Describes the status of a service. Possible values include: "Creating", + "Running", "Updating", "Deleting", "Error", "Stopped". + :vartype status: str or ~azure.mgmt.cosmosdb.models.ServiceStatus + :param sql_dedicated_gateway_endpoint: SqlDedicatedGateway endpoint for the service. + :type sql_dedicated_gateway_endpoint: str + :ivar locations: An array that contains all of the locations for the service. + :vartype locations: + list[~azure.mgmt.cosmosdb.models.SqlDedicatedGatewayRegionalServiceResource] + """ + + _validation = { + 'creation_time': {'readonly': True}, + 'instance_count': {'minimum': 0}, + 'service_type': {'required': True}, + 'status': {'readonly': True}, + 'locations': {'readonly': True}, + } + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'instance_size': {'key': 'instanceSize', 'type': 'str'}, + 'instance_count': {'key': 'instanceCount', 'type': 'int'}, + 'service_type': {'key': 'serviceType', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'sql_dedicated_gateway_endpoint': {'key': 'sqlDedicatedGatewayEndpoint', 'type': 'str'}, + 'locations': {'key': 'locations', 'type': '[SqlDedicatedGatewayRegionalServiceResource]'}, + } + + def __init__( + self, + *, + additional_properties: Optional[Dict[str, object]] = None, + instance_size: Optional[Union[str, "ServiceSize"]] = None, + instance_count: Optional[int] = None, + sql_dedicated_gateway_endpoint: Optional[str] = None, + **kwargs + ): + super(SqlDedicatedGatewayServiceResourceProperties, self).__init__(additional_properties=additional_properties, instance_size=instance_size, instance_count=instance_count, **kwargs) + self.service_type = 'SqlDedicatedGatewayServiceResourceProperties' # type: str + self.sql_dedicated_gateway_endpoint = sql_dedicated_gateway_endpoint + self.locations = None + + +class SqlRoleAssignmentCreateUpdateParameters(msrest.serialization.Model): + """Parameters to create and update an Azure Cosmos DB SQL Role Assignment. + + :param role_definition_id: The unique identifier for the associated Role Definition. + :type role_definition_id: str + :param scope: The data plane resource path for which access is being granted through this Role + Assignment. + :type scope: str + :param principal_id: The unique identifier for the associated AAD principal in the AAD graph to + which access is being granted through this Role Assignment. Tenant ID for the principal is + inferred using the tenant associated with the subscription. + :type principal_id: str + """ + + _attribute_map = { + 'role_definition_id': {'key': 'properties.roleDefinitionId', 'type': 'str'}, + 'scope': {'key': 'properties.scope', 'type': 'str'}, + 'principal_id': {'key': 'properties.principalId', 'type': 'str'}, + } + + def __init__( + self, + *, + role_definition_id: Optional[str] = None, + scope: Optional[str] = None, + principal_id: Optional[str] = None, + **kwargs + ): + super(SqlRoleAssignmentCreateUpdateParameters, self).__init__(**kwargs) + self.role_definition_id = role_definition_id + self.scope = scope + self.principal_id = principal_id + + +class SqlRoleAssignmentGetResults(ARMProxyResource): + """An Azure Cosmos DB Role Assignment. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource identifier of the database account. + :vartype id: str + :ivar name: The name of the database account. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param role_definition_id: The unique identifier for the associated Role Definition. + :type role_definition_id: str + :param scope: The data plane resource path for which access is being granted through this Role + Assignment. + :type scope: str + :param principal_id: The unique identifier for the associated AAD principal in the AAD graph to + which access is being granted through this Role Assignment. Tenant ID for the principal is + inferred using the tenant associated with the subscription. + :type principal_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'role_definition_id': {'key': 'properties.roleDefinitionId', 'type': 'str'}, + 'scope': {'key': 'properties.scope', 'type': 'str'}, + 'principal_id': {'key': 'properties.principalId', 'type': 'str'}, + } + + def __init__( + self, + *, + role_definition_id: Optional[str] = None, + scope: Optional[str] = None, + principal_id: Optional[str] = None, + **kwargs + ): + super(SqlRoleAssignmentGetResults, self).__init__(**kwargs) + self.role_definition_id = role_definition_id + self.scope = scope + self.principal_id = principal_id + + +class SqlRoleAssignmentListResult(msrest.serialization.Model): + """The relevant Role Assignments. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of Role Assignments and their properties. + :vartype value: list[~azure.mgmt.cosmosdb.models.SqlRoleAssignmentGetResults] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SqlRoleAssignmentGetResults]'}, + } + + def __init__( + self, + **kwargs + ): + super(SqlRoleAssignmentListResult, self).__init__(**kwargs) + self.value = None + + +class SqlRoleDefinitionCreateUpdateParameters(msrest.serialization.Model): + """Parameters to create and update an Azure Cosmos DB SQL Role Definition. + + :param role_name: A user-friendly name for the Role Definition. Must be unique for the database + account. + :type role_name: str + :param type: Indicates whether the Role Definition was built-in or user created. Possible + values include: "BuiltInRole", "CustomRole". + :type type: str or ~azure.mgmt.cosmosdb.models.RoleDefinitionType + :param assignable_scopes: A set of fully qualified Scopes at or below which Role Assignments + may be created using this Role Definition. This will allow application of this Role Definition + on the entire database account or any underlying Database / Collection. Must have at least one + element. Scopes higher than Database account are not enforceable as assignable Scopes. Note + that resources referenced in assignable Scopes need not exist. + :type assignable_scopes: list[str] + :param permissions: The set of operations allowed through this Role Definition. + :type permissions: list[~azure.mgmt.cosmosdb.models.Permission] + """ + + _attribute_map = { + 'role_name': {'key': 'properties.roleName', 'type': 'str'}, + 'type': {'key': 'properties.type', 'type': 'str'}, + 'assignable_scopes': {'key': 'properties.assignableScopes', 'type': '[str]'}, + 'permissions': {'key': 'properties.permissions', 'type': '[Permission]'}, + } + + def __init__( + self, + *, + role_name: Optional[str] = None, + type: Optional[Union[str, "RoleDefinitionType"]] = None, + assignable_scopes: Optional[List[str]] = None, + permissions: Optional[List["Permission"]] = None, + **kwargs + ): + super(SqlRoleDefinitionCreateUpdateParameters, self).__init__(**kwargs) + self.role_name = role_name + self.type = type + self.assignable_scopes = assignable_scopes + self.permissions = permissions + + +class SqlRoleDefinitionGetResults(ARMProxyResource): + """An Azure Cosmos DB SQL Role Definition. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The unique resource identifier of the database account. + :vartype id: str + :ivar name: The name of the database account. + :vartype name: str + :ivar type: The type of Azure resource. + :vartype type: str + :param role_name: A user-friendly name for the Role Definition. Must be unique for the database + account. + :type role_name: str + :param type_properties_type: Indicates whether the Role Definition was built-in or user + created. Possible values include: "BuiltInRole", "CustomRole". + :type type_properties_type: str or ~azure.mgmt.cosmosdb.models.RoleDefinitionType + :param assignable_scopes: A set of fully qualified Scopes at or below which Role Assignments + may be created using this Role Definition. This will allow application of this Role Definition + on the entire database account or any underlying Database / Collection. Must have at least one + element. Scopes higher than Database account are not enforceable as assignable Scopes. Note + that resources referenced in assignable Scopes need not exist. + :type assignable_scopes: list[str] + :param permissions: The set of operations allowed through this Role Definition. + :type permissions: list[~azure.mgmt.cosmosdb.models.Permission] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'role_name': {'key': 'properties.roleName', 'type': 'str'}, + 'type_properties_type': {'key': 'properties.type', 'type': 'str'}, + 'assignable_scopes': {'key': 'properties.assignableScopes', 'type': '[str]'}, + 'permissions': {'key': 'properties.permissions', 'type': '[Permission]'}, + } + + def __init__( + self, + *, + role_name: Optional[str] = None, + type_properties_type: Optional[Union[str, "RoleDefinitionType"]] = None, + assignable_scopes: Optional[List[str]] = None, + permissions: Optional[List["Permission"]] = None, + **kwargs + ): + super(SqlRoleDefinitionGetResults, self).__init__(**kwargs) + self.role_name = role_name + self.type_properties_type = type_properties_type + self.assignable_scopes = assignable_scopes + self.permissions = permissions + + +class SqlRoleDefinitionListResult(msrest.serialization.Model): + """The relevant Role Definitions. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: List of Role Definitions and their properties. + :vartype value: list[~azure.mgmt.cosmosdb.models.SqlRoleDefinitionGetResults] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SqlRoleDefinitionGetResults]'}, + } + + def __init__( + self, + **kwargs + ): + super(SqlRoleDefinitionListResult, self).__init__(**kwargs) + self.value = None + + class SqlStoredProcedureCreateUpdateParameters(ARMResourceProperties): """Parameters to create and update Cosmos DB storedProcedure. @@ -5328,6 +7913,8 @@ class SqlStoredProcedureCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a storedProcedure. :type resource: ~azure.mgmt.cosmosdb.models.SqlStoredProcedureResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -5348,6 +7935,7 @@ class SqlStoredProcedureCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'SqlStoredProcedureResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -5358,10 +7946,11 @@ def __init__( resource: "SqlStoredProcedureResource", location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, options: Optional["CreateUpdateOptions"] = None, **kwargs ): - super(SqlStoredProcedureCreateUpdateParameters, self).__init__(location=location, tags=tags, **kwargs) + super(SqlStoredProcedureCreateUpdateParameters, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource self.options = options @@ -5468,6 +8057,8 @@ class SqlStoredProcedureGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.SqlStoredProcedureGetPropertiesResource """ @@ -5484,6 +8075,7 @@ class SqlStoredProcedureGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'SqlStoredProcedureGetPropertiesResource'}, } @@ -5492,10 +8084,11 @@ def __init__( *, location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, resource: Optional["SqlStoredProcedureGetPropertiesResource"] = None, **kwargs ): - super(SqlStoredProcedureGetResults, self).__init__(location=location, tags=tags, **kwargs) + super(SqlStoredProcedureGetResults, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource @@ -5546,6 +8139,8 @@ class SqlTriggerCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a trigger. :type resource: ~azure.mgmt.cosmosdb.models.SqlTriggerResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -5566,6 +8161,7 @@ class SqlTriggerCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'SqlTriggerResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -5576,10 +8172,11 @@ def __init__( resource: "SqlTriggerResource", location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, options: Optional["CreateUpdateOptions"] = None, **kwargs ): - super(SqlTriggerCreateUpdateParameters, self).__init__(location=location, tags=tags, **kwargs) + super(SqlTriggerCreateUpdateParameters, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource self.options = options @@ -5708,6 +8305,8 @@ class SqlTriggerGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.SqlTriggerGetPropertiesResource """ @@ -5724,6 +8323,7 @@ class SqlTriggerGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'SqlTriggerGetPropertiesResource'}, } @@ -5732,10 +8332,11 @@ def __init__( *, location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, resource: Optional["SqlTriggerGetPropertiesResource"] = None, **kwargs ): - super(SqlTriggerGetResults, self).__init__(location=location, tags=tags, **kwargs) + super(SqlTriggerGetResults, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource @@ -5786,6 +8387,8 @@ class SqlUserDefinedFunctionCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a userDefinedFunction. :type resource: ~azure.mgmt.cosmosdb.models.SqlUserDefinedFunctionResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -5806,6 +8409,7 @@ class SqlUserDefinedFunctionCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'SqlUserDefinedFunctionResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -5816,10 +8420,11 @@ def __init__( resource: "SqlUserDefinedFunctionResource", location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, options: Optional["CreateUpdateOptions"] = None, **kwargs ): - super(SqlUserDefinedFunctionCreateUpdateParameters, self).__init__(location=location, tags=tags, **kwargs) + super(SqlUserDefinedFunctionCreateUpdateParameters, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource self.options = options @@ -5926,6 +8531,8 @@ class SqlUserDefinedFunctionGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.SqlUserDefinedFunctionGetPropertiesResource """ @@ -5942,6 +8549,7 @@ class SqlUserDefinedFunctionGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'SqlUserDefinedFunctionGetPropertiesResource'}, } @@ -5950,10 +8558,11 @@ def __init__( *, location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, resource: Optional["SqlUserDefinedFunctionGetPropertiesResource"] = None, **kwargs ): - super(SqlUserDefinedFunctionGetResults, self).__init__(location=location, tags=tags, **kwargs) + super(SqlUserDefinedFunctionGetResults, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource @@ -5982,6 +8591,54 @@ def __init__( self.value = None +class SystemData(msrest.serialization.Model): + """Metadata pertaining to creation and last modification of the resource. + + :param created_by: The identity that created the resource. + :type created_by: str + :param created_by_type: The type of identity that created the resource. Possible values + include: "User", "Application", "ManagedIdentity", "Key". + :type created_by_type: str or ~azure.mgmt.cosmosdb.models.CreatedByType + :param created_at: The timestamp of resource creation (UTC). + :type created_at: ~datetime.datetime + :param last_modified_by: The identity that last modified the resource. + :type last_modified_by: str + :param last_modified_by_type: The type of identity that last modified the resource. Possible + values include: "User", "Application", "ManagedIdentity", "Key". + :type last_modified_by_type: str or ~azure.mgmt.cosmosdb.models.CreatedByType + :param last_modified_at: The timestamp of resource last modification (UTC). + :type last_modified_at: ~datetime.datetime + """ + + _attribute_map = { + 'created_by': {'key': 'createdBy', 'type': 'str'}, + 'created_by_type': {'key': 'createdByType', 'type': 'str'}, + 'created_at': {'key': 'createdAt', 'type': 'iso-8601'}, + 'last_modified_by': {'key': 'lastModifiedBy', 'type': 'str'}, + 'last_modified_by_type': {'key': 'lastModifiedByType', 'type': 'str'}, + 'last_modified_at': {'key': 'lastModifiedAt', 'type': 'iso-8601'}, + } + + def __init__( + self, + *, + created_by: Optional[str] = None, + created_by_type: Optional[Union[str, "CreatedByType"]] = None, + created_at: Optional[datetime.datetime] = None, + last_modified_by: Optional[str] = None, + last_modified_by_type: Optional[Union[str, "CreatedByType"]] = None, + last_modified_at: Optional[datetime.datetime] = None, + **kwargs + ): + super(SystemData, self).__init__(**kwargs) + self.created_by = created_by + self.created_by_type = created_by_type + self.created_at = created_at + self.last_modified_by = last_modified_by + self.last_modified_by_type = last_modified_by_type + self.last_modified_at = last_modified_at + + class TableCreateUpdateParameters(ARMResourceProperties): """Parameters to create and update Cosmos DB Table. @@ -6004,6 +8661,8 @@ class TableCreateUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a Table. :type resource: ~azure.mgmt.cosmosdb.models.TableResource :param options: A key-value pair of options to be applied for the request. This corresponds to @@ -6024,6 +8683,7 @@ class TableCreateUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'TableResource'}, 'options': {'key': 'properties.options', 'type': 'CreateUpdateOptions'}, } @@ -6034,10 +8694,11 @@ def __init__( resource: "TableResource", location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, options: Optional["CreateUpdateOptions"] = None, **kwargs ): - super(TableCreateUpdateParameters, self).__init__(location=location, tags=tags, **kwargs) + super(TableCreateUpdateParameters, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource self.options = options @@ -6159,17 +8820,18 @@ class TableGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.TableGetPropertiesResource - :ivar options: Cosmos DB options resource object. - :vartype options: ~azure.mgmt.cosmosdb.models.OptionsResource + :param options: + :type options: ~azure.mgmt.cosmosdb.models.TableGetPropertiesOptions """ _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'options': {'readonly': True}, } _attribute_map = { @@ -6178,8 +8840,9 @@ class TableGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'TableGetPropertiesResource'}, - 'options': {'key': 'properties.options', 'type': 'OptionsResource'}, + 'options': {'key': 'properties.options', 'type': 'TableGetPropertiesOptions'}, } def __init__( @@ -6187,12 +8850,14 @@ def __init__( *, location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, resource: Optional["TableGetPropertiesResource"] = None, + options: Optional["TableGetPropertiesOptions"] = None, **kwargs ): - super(TableGetResults, self).__init__(location=location, tags=tags, **kwargs) + super(TableGetResults, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource - self.options = None + self.options = options class TableListResult(msrest.serialization.Model): @@ -6369,6 +9034,8 @@ class ThroughputSettingsGetResults(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: :type resource: ~azure.mgmt.cosmosdb.models.ThroughputSettingsGetPropertiesResource """ @@ -6385,6 +9052,7 @@ class ThroughputSettingsGetResults(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'ThroughputSettingsGetPropertiesResource'}, } @@ -6393,10 +9061,11 @@ def __init__( *, location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, resource: Optional["ThroughputSettingsGetPropertiesResource"] = None, **kwargs ): - super(ThroughputSettingsGetResults, self).__init__(location=location, tags=tags, **kwargs) + super(ThroughputSettingsGetResults, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource @@ -6422,6 +9091,8 @@ class ThroughputSettingsUpdateParameters(ARMResourceProperties): template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB". :type tags: dict[str, str] + :param identity: Identity for the resource. + :type identity: ~azure.mgmt.cosmosdb.models.ManagedServiceIdentity :param resource: Required. The standard JSON format of a resource throughput. :type resource: ~azure.mgmt.cosmosdb.models.ThroughputSettingsResource """ @@ -6439,6 +9110,7 @@ class ThroughputSettingsUpdateParameters(ARMResourceProperties): 'type': {'key': 'type', 'type': 'str'}, 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'}, 'resource': {'key': 'properties.resource', 'type': 'ThroughputSettingsResource'}, } @@ -6448,9 +9120,10 @@ def __init__( resource: "ThroughputSettingsResource", location: Optional[str] = None, tags: Optional[Dict[str, str]] = None, + identity: Optional["ManagedServiceIdentity"] = None, **kwargs ): - super(ThroughputSettingsUpdateParameters, self).__init__(location=location, tags=tags, **kwargs) + super(ThroughputSettingsUpdateParameters, self).__init__(location=location, tags=tags, identity=identity, **kwargs) self.resource = resource diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/__init__.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/__init__.py index 6e148cf5877a..deda0cd3267f 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/__init__.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/__init__.py @@ -24,9 +24,20 @@ from ._table_resources_operations import TableResourcesOperations from ._cassandra_resources_operations import CassandraResourcesOperations from ._gremlin_resources_operations import GremlinResourcesOperations +from ._restorable_database_accounts_operations import RestorableDatabaseAccountsOperations +from ._cosmos_db_management_client_operations import CosmosDBManagementClientOperationsMixin from ._notebook_workspaces_operations import NotebookWorkspacesOperations +from ._restorable_sql_databases_operations import RestorableSqlDatabasesOperations +from ._restorable_sql_containers_operations import RestorableSqlContainersOperations +from ._restorable_sql_resources_operations import RestorableSqlResourcesOperations +from ._restorable_mongodb_databases_operations import RestorableMongodbDatabasesOperations +from ._restorable_mongodb_collections_operations import RestorableMongodbCollectionsOperations +from ._restorable_mongodb_resources_operations import RestorableMongodbResourcesOperations +from ._cassandra_clusters_operations import CassandraClustersOperations +from ._cassandra_data_centers_operations import CassandraDataCentersOperations from ._private_link_resources_operations import PrivateLinkResourcesOperations from ._private_endpoint_connections_operations import PrivateEndpointConnectionsOperations +from ._service_operations import ServiceOperations __all__ = [ 'DatabaseAccountsOperations', @@ -47,7 +58,18 @@ 'TableResourcesOperations', 'CassandraResourcesOperations', 'GremlinResourcesOperations', + 'RestorableDatabaseAccountsOperations', + 'CosmosDBManagementClientOperationsMixin', 'NotebookWorkspacesOperations', + 'RestorableSqlDatabasesOperations', + 'RestorableSqlContainersOperations', + 'RestorableSqlResourcesOperations', + 'RestorableMongodbDatabasesOperations', + 'RestorableMongodbCollectionsOperations', + 'RestorableMongodbResourcesOperations', + 'CassandraClustersOperations', + 'CassandraDataCentersOperations', 'PrivateLinkResourcesOperations', 'PrivateEndpointConnectionsOperations', + 'ServiceOperations', ] diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_cassandra_clusters_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_cassandra_clusters_operations.py new file mode 100644 index 000000000000..2a3f408d8a13 --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_cassandra_clusters_operations.py @@ -0,0 +1,992 @@ +# 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 typing import TYPE_CHECKING +import warnings + +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 azure.core.polling import LROPoller, NoPolling, PollingMethod +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.arm_polling import ARMPolling + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar, Union + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class CassandraClustersOperations(object): + """CassandraClustersOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.cosmosdb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list_by_subscription( + self, + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ListClusters"] + """List all managed Cassandra clusters in this subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ListClusters or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.cosmosdb.models.ListClusters] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ListClusters"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list_by_subscription.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('ListClusters', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_by_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/cassandraClusters'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ListClusters"] + """List all managed Cassandra clusters in this resource group. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ListClusters or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.cosmosdb.models.ListClusters] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ListClusters"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list_by_resource_group.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('ListClusters', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters'} # type: ignore + + def get( + self, + resource_group_name, # type: str + cluster_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ClusterResource" + """Get the properties of a managed Cassandra cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ClusterResource, or the result of cls(response) + :rtype: ~azure.mgmt.cosmosdb.models.ClusterResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ClusterResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ClusterResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}'} # type: ignore + + def _delete_initial( + self, + resource_group_name, # type: str + cluster_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self._delete_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [202, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}'} # type: ignore + + def begin_delete( + self, + resource_group_name, # type: str + cluster_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Deletes a managed Cassandra cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :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: Pass in True if you'd like the ARMPolling 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 None or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[None] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._delete_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + if cls: + return cls(pipeline_response, None, {}) + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + + if polling is True: polling_method = ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}'} # type: ignore + + def _create_update_initial( + self, + resource_group_name, # type: str + cluster_name, # type: str + body, # type: "_models.ClusterResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.ClusterResource" + cls = kwargs.pop('cls', None) # type: ClsType["_models.ClusterResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(body, 'ClusterResource') + 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 [200, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('ClusterResource', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('ClusterResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}'} # type: ignore + + def begin_create_update( + self, + resource_group_name, # type: str + cluster_name, # type: str + body, # type: "_models.ClusterResource" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.ClusterResource"] + """Create or update a managed Cassandra cluster. When updating, you must specify all writable + properties. To update only some properties, use PATCH. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :param body: The properties specifying the desired state of the managed Cassandra cluster. + :type body: ~azure.mgmt.cosmosdb.models.ClusterResource + :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: Pass in True if you'd like the ARMPolling 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 ClusterResource or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.cosmosdb.models.ClusterResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ClusterResource"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._create_update_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + body=body, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('ClusterResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + + if polling is True: polling_method = ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_create_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}'} # type: ignore + + def _update_initial( + self, + resource_group_name, # type: str + cluster_name, # type: str + body, # type: "_models.ClusterResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.ClusterResource" + cls = kwargs.pop('cls', None) # type: ClsType["_models.ClusterResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(body, 'ClusterResource') + body_content_kwargs['content'] = body_content + request = self._client.patch(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 [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('ClusterResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('ClusterResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}'} # type: ignore + + def begin_update( + self, + resource_group_name, # type: str + cluster_name, # type: str + body, # type: "_models.ClusterResource" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.ClusterResource"] + """Updates some of the properties of a managed Cassandra cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :param body: Parameters to provide for specifying the managed Cassandra cluster. + :type body: ~azure.mgmt.cosmosdb.models.ClusterResource + :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: Pass in True if you'd like the ARMPolling 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 ClusterResource or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.cosmosdb.models.ClusterResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ClusterResource"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._update_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + body=body, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('ClusterResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + + if polling is True: polling_method = ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}'} # type: ignore + + def _request_repair_initial( + self, + resource_group_name, # type: str + cluster_name, # type: str + body, # type: "_models.RepairPostBody" + **kwargs # type: Any + ): + # type: (...) -> None + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._request_repair_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(body, 'RepairPostBody') + 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 [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _request_repair_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/repair'} # type: ignore + + def begin_request_repair( + self, + resource_group_name, # type: str + cluster_name, # type: str + body, # type: "_models.RepairPostBody" + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Request that repair begin on this cluster as soon as possible. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :param body: Specification of what keyspaces and tables to run repair on. + :type body: ~azure.mgmt.cosmosdb.models.RepairPostBody + :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: Pass in True if you'd like the ARMPolling 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 None or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[None] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._request_repair_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + body=body, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + if cls: + return cls(pipeline_response, None, {}) + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + + if polling is True: polling_method = ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_request_repair.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/repair'} # type: ignore + + def _fetch_node_status_initial( + self, + resource_group_name, # type: str + cluster_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Optional["_models.ClusterNodeStatus"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.ClusterNodeStatus"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self._fetch_node_status_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + request = self._client.post(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ClusterNodeStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _fetch_node_status_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/fetchNodeStatus'} # type: ignore + + def begin_fetch_node_status( + self, + resource_group_name, # type: str + cluster_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.ClusterNodeStatus"] + """Request the status of all nodes in the cluster (as returned by 'nodetool status'). + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :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: Pass in True if you'd like the ARMPolling 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 ClusterNodeStatus or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.cosmosdb.models.ClusterNodeStatus] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ClusterNodeStatus"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._fetch_node_status_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('ClusterNodeStatus', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + + if polling is True: polling_method = ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_fetch_node_status.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/fetchNodeStatus'} # type: ignore + + def list_backups( + self, + resource_group_name, # type: str + cluster_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ListBackups"] + """List the backups of this cluster that are available to restore. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ListBackups or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.cosmosdb.models.ListBackups] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ListBackups"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list_backups.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('ListBackups', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_backups.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/backups'} # type: ignore + + def get_backup( + self, + resource_group_name, # type: str + cluster_name, # type: str + backup_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.BackupResource" + """Get the properties of an individual backup of this cluster that is available to restore. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :param backup_id: Id of a restorable backup of a Cassandra cluster. + :type backup_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: BackupResource, or the result of cls(response) + :rtype: ~azure.mgmt.cosmosdb.models.BackupResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self.get_backup.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + 'backupId': self._serialize.url("backup_id", backup_id, 'str', max_length=15, min_length=1, pattern=r'^[0-9]+$'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('BackupResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_backup.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/backups/{backupId}'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_cassandra_data_centers_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_cassandra_data_centers_operations.py new file mode 100644 index 000000000000..4896dd2ee4ac --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_cassandra_data_centers_operations.py @@ -0,0 +1,578 @@ +# 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 typing import TYPE_CHECKING +import warnings + +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 azure.core.polling import LROPoller, NoPolling, PollingMethod +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.arm_polling import ARMPolling + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar, Union + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class CassandraDataCentersOperations(object): + """CassandraDataCentersOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.cosmosdb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + resource_group_name, # type: str + cluster_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ListDataCenters"] + """List all data centers in a particular managed Cassandra cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ListDataCenters or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.cosmosdb.models.ListDataCenters] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ListDataCenters"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('ListDataCenters', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/dataCenters'} # type: ignore + + def get( + self, + resource_group_name, # type: str + cluster_name, # type: str + data_center_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.DataCenterResource" + """Get the properties of a managed Cassandra data center. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :param data_center_name: Data center name in a managed Cassandra cluster. + :type data_center_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: DataCenterResource, or the result of cls(response) + :rtype: ~azure.mgmt.cosmosdb.models.DataCenterResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.DataCenterResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + 'dataCenterName': self._serialize.url("data_center_name", data_center_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('DataCenterResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/dataCenters/{dataCenterName}'} # type: ignore + + def _delete_initial( + self, + resource_group_name, # type: str + cluster_name, # type: str + data_center_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self._delete_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + 'dataCenterName': self._serialize.url("data_center_name", data_center_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [202, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/dataCenters/{dataCenterName}'} # type: ignore + + def begin_delete( + self, + resource_group_name, # type: str + cluster_name, # type: str + data_center_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Delete a managed Cassandra data center. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :param data_center_name: Data center name in a managed Cassandra cluster. + :type data_center_name: str + :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: Pass in True if you'd like the ARMPolling 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 None or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[None] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._delete_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + data_center_name=data_center_name, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + if cls: + return cls(pipeline_response, None, {}) + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + 'dataCenterName': self._serialize.url("data_center_name", data_center_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + + if polling is True: polling_method = ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/dataCenters/{dataCenterName}'} # type: ignore + + def _create_update_initial( + self, + resource_group_name, # type: str + cluster_name, # type: str + data_center_name, # type: str + body, # type: "_models.DataCenterResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.DataCenterResource" + cls = kwargs.pop('cls', None) # type: ClsType["_models.DataCenterResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + 'dataCenterName': self._serialize.url("data_center_name", data_center_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(body, 'DataCenterResource') + 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 [200, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('DataCenterResource', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('DataCenterResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/dataCenters/{dataCenterName}'} # type: ignore + + def begin_create_update( + self, + resource_group_name, # type: str + cluster_name, # type: str + data_center_name, # type: str + body, # type: "_models.DataCenterResource" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.DataCenterResource"] + """Create or update a managed Cassandra data center. When updating, overwrite all properties. To + update only some properties, use PATCH. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :param data_center_name: Data center name in a managed Cassandra cluster. + :type data_center_name: str + :param body: Parameters specifying the managed Cassandra data center. + :type body: ~azure.mgmt.cosmosdb.models.DataCenterResource + :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: Pass in True if you'd like the ARMPolling 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 DataCenterResource or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.cosmosdb.models.DataCenterResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.DataCenterResource"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._create_update_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + data_center_name=data_center_name, + body=body, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('DataCenterResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + 'dataCenterName': self._serialize.url("data_center_name", data_center_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + + if polling is True: polling_method = ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_create_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/dataCenters/{dataCenterName}'} # type: ignore + + def _update_initial( + self, + resource_group_name, # type: str + cluster_name, # type: str + data_center_name, # type: str + body, # type: "_models.DataCenterResource" + **kwargs # type: Any + ): + # type: (...) -> "_models.DataCenterResource" + cls = kwargs.pop('cls', None) # type: ClsType["_models.DataCenterResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + 'dataCenterName': self._serialize.url("data_center_name", data_center_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(body, 'DataCenterResource') + body_content_kwargs['content'] = body_content + request = self._client.patch(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 [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('DataCenterResource', pipeline_response) + + if response.status_code == 202: + deserialized = self._deserialize('DataCenterResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/dataCenters/{dataCenterName}'} # type: ignore + + def begin_update( + self, + resource_group_name, # type: str + cluster_name, # type: str + data_center_name, # type: str + body, # type: "_models.DataCenterResource" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.DataCenterResource"] + """Update some of the properties of a managed Cassandra data center. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: Managed Cassandra cluster name. + :type cluster_name: str + :param data_center_name: Data center name in a managed Cassandra cluster. + :type data_center_name: str + :param body: Parameters to provide for specifying the managed Cassandra data center. + :type body: ~azure.mgmt.cosmosdb.models.DataCenterResource + :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: Pass in True if you'd like the ARMPolling 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 DataCenterResource or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.cosmosdb.models.DataCenterResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.DataCenterResource"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._update_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + data_center_name=data_center_name, + body=body, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('DataCenterResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + 'dataCenterName': self._serialize.url("data_center_name", data_center_name, 'str', max_length=100, min_length=1, pattern=r'^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*'), + } + + if polling is True: polling_method = ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/cassandraClusters/{clusterName}/dataCenters/{dataCenterName}'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_cassandra_resources_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_cassandra_resources_operations.py index 20b67357cbad..0f73d2c03471 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_cassandra_resources_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_cassandra_resources_operations.py @@ -70,7 +70,7 @@ def list_cassandra_keyspaces( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -149,7 +149,7 @@ def get_cassandra_keyspace( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -200,7 +200,7 @@ def _create_update_cassandra_keyspace_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -266,8 +266,8 @@ def begin_create_update_cassandra_keyspace( :type create_update_cassandra_keyspace_parameters: ~azure.mgmt.cosmosdb.models.CassandraKeyspaceCreateUpdateParameters :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 ARMPolling 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 CassandraKeyspaceGetResults or the result of cls(response) @@ -335,7 +335,7 @@ def _delete_cassandra_keyspace_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_cassandra_keyspace_initial.metadata['url'] # type: ignore @@ -385,8 +385,8 @@ def begin_delete_cassandra_keyspace( :type keyspace_name: str :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 ARMPolling 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 None or the result of cls(response) @@ -464,7 +464,7 @@ def get_cassandra_keyspace_throughput( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -515,7 +515,7 @@ def _update_cassandra_keyspace_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -581,8 +581,8 @@ def begin_update_cassandra_keyspace_throughput( :type update_throughput_parameters: ~azure.mgmt.cosmosdb.models.ThroughputSettingsUpdateParameters :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -650,7 +650,7 @@ def _migrate_cassandra_keyspace_to_autoscale_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -677,8 +677,7 @@ def _migrate_cassandra_keyspace_to_autoscale_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -708,8 +707,8 @@ def begin_migrate_cassandra_keyspace_to_autoscale( :type keyspace_name: str :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -776,7 +775,7 @@ def _migrate_cassandra_keyspace_to_manual_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -803,8 +802,7 @@ def _migrate_cassandra_keyspace_to_manual_throughput_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -834,8 +832,8 @@ def begin_migrate_cassandra_keyspace_to_manual_throughput( :type keyspace_name: str :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -915,7 +913,7 @@ def list_cassandra_tables( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -997,7 +995,7 @@ def get_cassandra_table( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1050,7 +1048,7 @@ def _create_update_cassandra_table_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -1120,8 +1118,8 @@ def begin_create_update_cassandra_table( :type create_update_cassandra_table_parameters: ~azure.mgmt.cosmosdb.models.CassandraTableCreateUpdateParameters :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 ARMPolling 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 CassandraTableGetResults or the result of cls(response) @@ -1192,7 +1190,7 @@ def _delete_cassandra_table_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_cassandra_table_initial.metadata['url'] # type: ignore @@ -1246,8 +1244,8 @@ def begin_delete_cassandra_table( :type table_name: str :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 ARMPolling 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 None or the result of cls(response) @@ -1330,7 +1328,7 @@ def get_cassandra_table_throughput( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1383,7 +1381,7 @@ def _update_cassandra_table_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -1453,8 +1451,8 @@ def begin_update_cassandra_table_throughput( :type update_throughput_parameters: ~azure.mgmt.cosmosdb.models.ThroughputSettingsUpdateParameters :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -1525,7 +1523,7 @@ def _migrate_cassandra_table_to_autoscale_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1553,8 +1551,7 @@ def _migrate_cassandra_table_to_autoscale_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -1587,8 +1584,8 @@ def begin_migrate_cassandra_table_to_autoscale( :type table_name: str :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -1658,7 +1655,7 @@ def _migrate_cassandra_table_to_manual_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1686,8 +1683,7 @@ def _migrate_cassandra_table_to_manual_throughput_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -1720,8 +1716,8 @@ def begin_migrate_cassandra_table_to_manual_throughput( :type table_name: str :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_collection_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_collection_operations.py index 34a3e40c3f94..2e970ca3bd80 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_collection_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_collection_operations.py @@ -80,7 +80,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -168,7 +168,7 @@ def list_usages( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -253,7 +253,7 @@ def list_metric_definitions( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_collection_partition_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_collection_partition_operations.py index 970ac32fbd82..b211b374cdc4 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_collection_partition_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_collection_partition_operations.py @@ -80,7 +80,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -168,7 +168,7 @@ def list_usages( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_collection_partition_region_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_collection_partition_region_operations.py index 3ec304e1028d..044df9aa535e 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_collection_partition_region_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_collection_partition_region_operations.py @@ -83,7 +83,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_collection_region_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_collection_region_operations.py index 9a6368f49bbd..e9d9cf97fb00 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_collection_region_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_collection_region_operations.py @@ -83,7 +83,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_cosmos_db_management_client_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_cosmos_db_management_client_operations.py new file mode 100644 index 000000000000..3d245251db00 --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_cosmos_db_management_client_operations.py @@ -0,0 +1,148 @@ +# 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 typing import TYPE_CHECKING +import warnings + +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 azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class CosmosDBManagementClientOperationsMixin(object): + + def location_list( + self, + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.LocationListResult"] + """List Cosmos DB locations and their properties. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either LocationListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.cosmosdb.models.LocationListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.LocationListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.location_list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('LocationListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + location_list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations'} # type: ignore + + def location_get( + self, + location, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.LocationGetResult" + """Get the properties of an existing Cosmos DB location. + + :param location: Cosmos DB region, with spaces between words and each word capitalized. + :type location: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: LocationGetResult, or the result of cls(response) + :rtype: ~azure.mgmt.cosmosdb.models.LocationGetResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.LocationGetResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self.location_get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'location': self._serialize.url("location", location, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('LocationGetResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + location_get.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_database_account_region_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_database_account_region_operations.py index 0e031f0050e6..72381396e02b 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_database_account_region_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_database_account_region_operations.py @@ -76,7 +76,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_database_accounts_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_database_accounts_operations.py index 279c7649c4de..7a603954b19a 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_database_accounts_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_database_accounts_operations.py @@ -70,7 +70,7 @@ def get( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -119,7 +119,7 @@ def _update_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -178,8 +178,8 @@ def begin_update( :type update_parameters: ~azure.mgmt.cosmosdb.models.DatabaseAccountUpdateParameters :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 ARMPolling 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 DatabaseAccountGetResults or the result of cls(response) @@ -245,7 +245,7 @@ def _create_or_update_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -305,8 +305,8 @@ def begin_create_or_update( :type create_update_parameters: ~azure.mgmt.cosmosdb.models.DatabaseAccountCreateUpdateParameters :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 ARMPolling 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 DatabaseAccountGetResults or the result of cls(response) @@ -371,7 +371,7 @@ def _delete_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_initial.metadata['url'] # type: ignore @@ -417,8 +417,8 @@ def begin_delete( :type account_name: str :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 ARMPolling 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 None or the result of cls(response) @@ -480,7 +480,7 @@ def _failover_priority_change_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") # Construct URL @@ -537,8 +537,8 @@ def begin_failover_priority_change( :type failover_parameters: ~azure.mgmt.cosmosdb.models.FailoverPolicies :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 ARMPolling 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 None or the result of cls(response) @@ -605,7 +605,7 @@ def list( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -675,7 +675,7 @@ def list_by_resource_group( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -749,7 +749,7 @@ def list_keys( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -808,7 +808,7 @@ def list_connection_strings( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -857,7 +857,7 @@ def _offline_region_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -888,7 +888,7 @@ def _offline_region_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -914,8 +914,8 @@ def begin_offline_region( :type region_parameter_for_offline: ~azure.mgmt.cosmosdb.models.RegionForOnlineOffline :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 ARMPolling 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 None or the result of cls(response) @@ -978,7 +978,7 @@ def _online_region_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -1009,7 +1009,7 @@ def _online_region_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -1035,8 +1035,8 @@ def begin_online_region( :type region_parameter_for_online: ~azure.mgmt.cosmosdb.models.RegionForOnlineOffline :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 ARMPolling 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 None or the result of cls(response) @@ -1109,7 +1109,7 @@ def get_read_only_keys( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1168,7 +1168,7 @@ def list_read_only_keys( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1217,7 +1217,7 @@ def _regenerate_key_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") # Construct URL @@ -1271,8 +1271,8 @@ def begin_regenerate_key( :type key_to_regenerate: ~azure.mgmt.cosmosdb.models.DatabaseAccountRegenerateKeyParameters :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 ARMPolling 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 None or the result of cls(response) @@ -1344,7 +1344,7 @@ def check_name_exists( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self.check_name_exists.metadata['url'] # type: ignore @@ -1402,7 +1402,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -1482,7 +1482,7 @@ def list_usages( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -1559,7 +1559,7 @@ def list_metric_definitions( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_database_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_database_operations.py index fd3eeedee6c5..71fbb7456474 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_database_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_database_operations.py @@ -77,7 +77,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -161,7 +161,7 @@ def list_usages( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -242,7 +242,7 @@ def list_metric_definitions( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_gremlin_resources_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_gremlin_resources_operations.py index 060982e0662b..f00e05311f7c 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_gremlin_resources_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_gremlin_resources_operations.py @@ -70,7 +70,7 @@ def list_gremlin_databases( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -149,7 +149,7 @@ def get_gremlin_database( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -200,7 +200,7 @@ def _create_update_gremlin_database_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -266,8 +266,8 @@ def begin_create_update_gremlin_database( :type create_update_gremlin_database_parameters: ~azure.mgmt.cosmosdb.models.GremlinDatabaseCreateUpdateParameters :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 ARMPolling 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 GremlinDatabaseGetResults or the result of cls(response) @@ -335,7 +335,7 @@ def _delete_gremlin_database_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_gremlin_database_initial.metadata['url'] # type: ignore @@ -385,8 +385,8 @@ def begin_delete_gremlin_database( :type database_name: str :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 ARMPolling 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 None or the result of cls(response) @@ -464,7 +464,7 @@ def get_gremlin_database_throughput( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -515,7 +515,7 @@ def _update_gremlin_database_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -581,8 +581,8 @@ def begin_update_gremlin_database_throughput( :type update_throughput_parameters: ~azure.mgmt.cosmosdb.models.ThroughputSettingsUpdateParameters :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -650,7 +650,7 @@ def _migrate_gremlin_database_to_autoscale_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -677,8 +677,7 @@ def _migrate_gremlin_database_to_autoscale_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -708,8 +707,8 @@ def begin_migrate_gremlin_database_to_autoscale( :type database_name: str :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -776,7 +775,7 @@ def _migrate_gremlin_database_to_manual_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -803,8 +802,7 @@ def _migrate_gremlin_database_to_manual_throughput_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -834,8 +832,8 @@ def begin_migrate_gremlin_database_to_manual_throughput( :type database_name: str :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -915,7 +913,7 @@ def list_gremlin_graphs( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -997,7 +995,7 @@ def get_gremlin_graph( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1050,7 +1048,7 @@ def _create_update_gremlin_graph_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -1120,8 +1118,8 @@ def begin_create_update_gremlin_graph( :type create_update_gremlin_graph_parameters: ~azure.mgmt.cosmosdb.models.GremlinGraphCreateUpdateParameters :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 ARMPolling 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 GremlinGraphGetResults or the result of cls(response) @@ -1192,7 +1190,7 @@ def _delete_gremlin_graph_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_gremlin_graph_initial.metadata['url'] # type: ignore @@ -1246,8 +1244,8 @@ def begin_delete_gremlin_graph( :type graph_name: str :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 ARMPolling 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 None or the result of cls(response) @@ -1330,7 +1328,7 @@ def get_gremlin_graph_throughput( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1383,7 +1381,7 @@ def _update_gremlin_graph_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -1453,8 +1451,8 @@ def begin_update_gremlin_graph_throughput( :type update_throughput_parameters: ~azure.mgmt.cosmosdb.models.ThroughputSettingsUpdateParameters :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -1525,7 +1523,7 @@ def _migrate_gremlin_graph_to_autoscale_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1553,8 +1551,7 @@ def _migrate_gremlin_graph_to_autoscale_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -1587,8 +1584,8 @@ def begin_migrate_gremlin_graph_to_autoscale( :type graph_name: str :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -1658,7 +1655,7 @@ def _migrate_gremlin_graph_to_manual_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1686,8 +1683,7 @@ def _migrate_gremlin_graph_to_manual_throughput_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -1720,8 +1716,8 @@ def begin_migrate_gremlin_graph_to_manual_throughput( :type graph_name: str :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_mongo_db_resources_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_mongo_db_resources_operations.py index 6b306e99d01b..ad1fe4a1a1e4 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_mongo_db_resources_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_mongo_db_resources_operations.py @@ -70,7 +70,7 @@ def list_mongo_db_databases( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -149,7 +149,7 @@ def get_mongo_db_database( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -200,7 +200,7 @@ def _create_update_mongo_db_database_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -266,8 +266,8 @@ def begin_create_update_mongo_db_database( :type create_update_mongo_db_database_parameters: ~azure.mgmt.cosmosdb.models.MongoDBDatabaseCreateUpdateParameters :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 ARMPolling 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 MongoDBDatabaseGetResults or the result of cls(response) @@ -335,7 +335,7 @@ def _delete_mongo_db_database_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_mongo_db_database_initial.metadata['url'] # type: ignore @@ -385,8 +385,8 @@ def begin_delete_mongo_db_database( :type database_name: str :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 ARMPolling 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 None or the result of cls(response) @@ -464,7 +464,7 @@ def get_mongo_db_database_throughput( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -515,7 +515,7 @@ def _update_mongo_db_database_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -547,8 +547,7 @@ def _update_mongo_db_database_throughput_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -582,8 +581,8 @@ def begin_update_mongo_db_database_throughput( :type update_throughput_parameters: ~azure.mgmt.cosmosdb.models.ThroughputSettingsUpdateParameters :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -651,7 +650,7 @@ def _migrate_mongo_db_database_to_autoscale_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -678,8 +677,7 @@ def _migrate_mongo_db_database_to_autoscale_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -709,8 +707,8 @@ def begin_migrate_mongo_db_database_to_autoscale( :type database_name: str :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -777,7 +775,7 @@ def _migrate_mongo_db_database_to_manual_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -804,8 +802,7 @@ def _migrate_mongo_db_database_to_manual_throughput_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -835,8 +832,8 @@ def begin_migrate_mongo_db_database_to_manual_throughput( :type database_name: str :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -916,7 +913,7 @@ def list_mongo_db_collections( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -998,7 +995,7 @@ def get_mongo_db_collection( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1051,7 +1048,7 @@ def _create_update_mongo_db_collection_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -1121,8 +1118,8 @@ def begin_create_update_mongo_db_collection( :type create_update_mongo_db_collection_parameters: ~azure.mgmt.cosmosdb.models.MongoDBCollectionCreateUpdateParameters :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 ARMPolling 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 MongoDBCollectionGetResults or the result of cls(response) @@ -1193,7 +1190,7 @@ def _delete_mongo_db_collection_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_mongo_db_collection_initial.metadata['url'] # type: ignore @@ -1247,8 +1244,8 @@ def begin_delete_mongo_db_collection( :type collection_name: str :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 ARMPolling 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 None or the result of cls(response) @@ -1331,7 +1328,7 @@ def get_mongo_db_collection_throughput( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1384,7 +1381,7 @@ def _update_mongo_db_collection_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -1454,8 +1451,8 @@ def begin_update_mongo_db_collection_throughput( :type update_throughput_parameters: ~azure.mgmt.cosmosdb.models.ThroughputSettingsUpdateParameters :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -1526,7 +1523,7 @@ def _migrate_mongo_db_collection_to_autoscale_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1554,8 +1551,7 @@ def _migrate_mongo_db_collection_to_autoscale_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -1588,8 +1584,8 @@ def begin_migrate_mongo_db_collection_to_autoscale( :type collection_name: str :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -1659,7 +1655,7 @@ def _migrate_mongo_db_collection_to_manual_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1687,8 +1683,7 @@ def _migrate_mongo_db_collection_to_manual_throughput_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -1721,8 +1716,8 @@ def begin_migrate_mongo_db_collection_to_manual_throughput( :type collection_name: str :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_notebook_workspaces_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_notebook_workspaces_operations.py index d0a724f17f48..0200367ca855 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_notebook_workspaces_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_notebook_workspaces_operations.py @@ -70,7 +70,7 @@ def list_by_database_account( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -112,7 +112,7 @@ def get_next(next_link=None): response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize(_models.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) @@ -149,7 +149,7 @@ def get( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -176,7 +176,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.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('NotebookWorkspace', pipeline_response) @@ -192,7 +192,7 @@ def _create_or_update_initial( resource_group_name, # type: str account_name, # type: str notebook_workspace_name, # type: Union[str, "_models.NotebookWorkspaceName"] - notebook_create_update_parameters, # type: "_models.ARMProxyResource" + notebook_create_update_parameters, # type: "_models.NotebookWorkspaceCreateUpdateParameters" **kwargs # type: Any ): # type: (...) -> "_models.NotebookWorkspace" @@ -201,7 +201,7 @@ def _create_or_update_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -225,7 +225,7 @@ def _create_or_update_initial( header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') body_content_kwargs = {} # type: Dict[str, Any] - body_content = self._serialize.body(notebook_create_update_parameters, 'ARMProxyResource') + body_content = self._serialize.body(notebook_create_update_parameters, 'NotebookWorkspaceCreateUpdateParameters') 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) @@ -233,7 +233,7 @@ def _create_or_update_initial( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('NotebookWorkspace', pipeline_response) @@ -249,7 +249,7 @@ def begin_create_or_update( resource_group_name, # type: str account_name, # type: str notebook_workspace_name, # type: Union[str, "_models.NotebookWorkspaceName"] - notebook_create_update_parameters, # type: "_models.ARMProxyResource" + notebook_create_update_parameters, # type: "_models.NotebookWorkspaceCreateUpdateParameters" **kwargs # type: Any ): # type: (...) -> LROPoller["_models.NotebookWorkspace"] @@ -263,11 +263,11 @@ def begin_create_or_update( :type notebook_workspace_name: str or ~azure.mgmt.cosmosdb.models.NotebookWorkspaceName :param notebook_create_update_parameters: The notebook workspace to create for the current database account. - :type notebook_create_update_parameters: ~azure.mgmt.cosmosdb.models.ARMProxyResource + :type notebook_create_update_parameters: ~azure.mgmt.cosmosdb.models.NotebookWorkspaceCreateUpdateParameters :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 ARMPolling 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 NotebookWorkspace or the result of cls(response) @@ -335,7 +335,7 @@ def _delete_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -362,7 +362,7 @@ def _delete_initial( if response.status_code not in [202, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -388,8 +388,8 @@ def begin_delete( :type notebook_workspace_name: str or ~azure.mgmt.cosmosdb.models.NotebookWorkspaceName :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 ARMPolling 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 None or the result of cls(response) @@ -466,7 +466,7 @@ def list_connection_info( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -493,7 +493,7 @@ def list_connection_info( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize('NotebookWorkspaceConnectionInfoResult', pipeline_response) @@ -517,7 +517,7 @@ def _regenerate_auth_token_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -544,7 +544,7 @@ def _regenerate_auth_token_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -570,8 +570,8 @@ def begin_regenerate_auth_token( :type notebook_workspace_name: str or ~azure.mgmt.cosmosdb.models.NotebookWorkspaceName :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 ARMPolling 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 None or the result of cls(response) @@ -635,7 +635,7 @@ def _start_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -662,7 +662,7 @@ def _start_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -688,8 +688,8 @@ def begin_start( :type notebook_workspace_name: str or ~azure.mgmt.cosmosdb.models.NotebookWorkspaceName :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 ARMPolling 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 None or the result of cls(response) diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_operations.py index 4b654fd3d204..7c4995615824 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_operations.py @@ -62,7 +62,7 @@ def list( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_partition_key_range_id_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_partition_key_range_id_operations.py index 37237594f8f8..e8aeebc77ef0 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_partition_key_range_id_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_partition_key_range_id_operations.py @@ -82,7 +82,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_partition_key_range_id_region_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_partition_key_range_id_region_operations.py index cd24acf7d300..58f134482819 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_partition_key_range_id_region_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_partition_key_range_id_region_operations.py @@ -86,7 +86,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_percentile_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_percentile_operations.py index 47906f9499fe..1c4462e988a9 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_percentile_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_percentile_operations.py @@ -74,7 +74,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_percentile_source_target_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_percentile_source_target_operations.py index 6be89ca4bcf1..024b3535c2a4 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_percentile_source_target_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_percentile_source_target_operations.py @@ -82,7 +82,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_percentile_target_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_percentile_target_operations.py index f76486f00462..cf9fb289ff8f 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_percentile_target_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_percentile_target_operations.py @@ -78,7 +78,7 @@ def list_metrics( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_private_endpoint_connections_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_private_endpoint_connections_operations.py index 401895e217c0..eaf87246012d 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_private_endpoint_connections_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_private_endpoint_connections_operations.py @@ -70,7 +70,7 @@ def list_by_database_account( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -148,7 +148,7 @@ def get( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -199,7 +199,7 @@ def _create_or_update_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -231,7 +231,7 @@ def _create_or_update_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = None @@ -265,8 +265,8 @@ def begin_create_or_update( :type parameters: ~azure.mgmt.cosmosdb.models.PrivateEndpointConnection :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 ARMPolling 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 PrivateEndpointConnection or the result of cls(response) @@ -334,7 +334,7 @@ def _delete_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -361,7 +361,7 @@ def _delete_initial( if response.status_code not in [202, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponse, response) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -387,8 +387,8 @@ def begin_delete( :type private_endpoint_connection_name: str :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 ARMPolling 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 None or the result of cls(response) diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_private_link_resources_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_private_link_resources_operations.py index bf0290bcdf99..80a1b83af5d9 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_private_link_resources_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_private_link_resources_operations.py @@ -68,7 +68,7 @@ def list_by_database_account( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -146,7 +146,7 @@ def get( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_database_accounts_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_database_accounts_operations.py new file mode 100644 index 000000000000..6e86ca3e36da --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_database_accounts_operations.py @@ -0,0 +1,247 @@ +# 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 typing import TYPE_CHECKING +import warnings + +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 azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class RestorableDatabaseAccountsOperations(object): + """RestorableDatabaseAccountsOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.cosmosdb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list_by_location( + self, + location, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.RestorableDatabaseAccountsListResult"] + """Lists all the restorable Azure Cosmos DB database accounts available under the subscription and + in a region. This call requires + 'Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read' permission. + + :param location: Cosmos DB region, with spaces between words and each word capitalized. + :type location: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RestorableDatabaseAccountsListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.cosmosdb.models.RestorableDatabaseAccountsListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestorableDatabaseAccountsListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list_by_location.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'location': self._serialize.url("location", location, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('RestorableDatabaseAccountsListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_by_location.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts'} # type: ignore + + def list( + self, + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.RestorableDatabaseAccountsListResult"] + """Lists all the restorable Azure Cosmos DB database accounts available under the subscription. + This call requires 'Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read' permission. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RestorableDatabaseAccountsListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.cosmosdb.models.RestorableDatabaseAccountsListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestorableDatabaseAccountsListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('RestorableDatabaseAccountsListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/restorableDatabaseAccounts'} # type: ignore + + def get_by_location( + self, + location, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.RestorableDatabaseAccountGetResult" + """Retrieves the properties of an existing Azure Cosmos DB restorable database account. This call + requires 'Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read/*' permission. + + :param location: Cosmos DB region, with spaces between words and each word capitalized. + :type location: str + :param instance_id: The instanceId GUID of a restorable database account. + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RestorableDatabaseAccountGetResult, or the result of cls(response) + :rtype: ~azure.mgmt.cosmosdb.models.RestorableDatabaseAccountGetResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestorableDatabaseAccountGetResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self.get_by_location.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'location': self._serialize.url("location", location, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RestorableDatabaseAccountGetResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_by_location.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts/{instanceId}'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_mongodb_collections_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_mongodb_collections_operations.py new file mode 100644 index 000000000000..cad264e396f7 --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_mongodb_collections_operations.py @@ -0,0 +1,128 @@ +# 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 typing import TYPE_CHECKING +import warnings + +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 azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class RestorableMongodbCollectionsOperations(object): + """RestorableMongodbCollectionsOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.cosmosdb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + location, # type: str + instance_id, # type: str + restorable_mongodb_database_rid=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.RestorableMongodbCollectionsListResult"] + """Show the event feed of all mutations done on all the Azure Cosmos DB MongoDB collections under + a specific database. This helps in scenario where container was accidentally deleted. This + API requires 'Microsoft.DocumentDB/locations/restorableDatabaseAccounts/.../read' permission. + + :param location: Cosmos DB region, with spaces between words and each word capitalized. + :type location: str + :param instance_id: The instanceId GUID of a restorable database account. + :type instance_id: str + :param restorable_mongodb_database_rid: The resource ID of the MongoDB database. + :type restorable_mongodb_database_rid: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RestorableMongodbCollectionsListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.cosmosdb.models.RestorableMongodbCollectionsListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestorableMongodbCollectionsListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'location': self._serialize.url("location", location, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + if restorable_mongodb_database_rid is not None: + query_parameters['restorableMongodbDatabaseRid'] = self._serialize.query("restorable_mongodb_database_rid", restorable_mongodb_database_rid, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('RestorableMongodbCollectionsListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts/{instanceId}/restorableMongodbCollections'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_mongodb_databases_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_mongodb_databases_operations.py new file mode 100644 index 000000000000..8cf141734123 --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_mongodb_databases_operations.py @@ -0,0 +1,124 @@ +# 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 typing import TYPE_CHECKING +import warnings + +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 azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class RestorableMongodbDatabasesOperations(object): + """RestorableMongodbDatabasesOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.cosmosdb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + location, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.RestorableMongodbDatabasesListResult"] + """Show the event feed of all mutations done on all the Azure Cosmos DB MongoDB databases under + the restorable account. This helps in scenario where database was accidentally deleted to get + the deletion time. This API requires + 'Microsoft.DocumentDB/locations/restorableDatabaseAccounts/.../read' permission. + + :param location: Cosmos DB region, with spaces between words and each word capitalized. + :type location: str + :param instance_id: The instanceId GUID of a restorable database account. + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RestorableMongodbDatabasesListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.cosmosdb.models.RestorableMongodbDatabasesListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestorableMongodbDatabasesListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'location': self._serialize.url("location", location, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('RestorableMongodbDatabasesListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts/{instanceId}/restorableMongodbDatabases'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_mongodb_resources_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_mongodb_resources_operations.py new file mode 100644 index 000000000000..6a52296f3a95 --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_mongodb_resources_operations.py @@ -0,0 +1,134 @@ +# 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 typing import TYPE_CHECKING +import warnings + +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 azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class RestorableMongodbResourcesOperations(object): + """RestorableMongodbResourcesOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.cosmosdb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + location, # type: str + instance_id, # type: str + restore_location=None, # type: Optional[str] + restore_timestamp_in_utc=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.RestorableMongodbResourcesListResult"] + """Return a list of database and collection combo that exist on the account at the given timestamp + and location. This helps in scenarios to validate what resources exist at given timestamp and + location. This API requires + 'Microsoft.DocumentDB/locations/restorableDatabaseAccounts/.../read' permission. + + :param location: Cosmos DB region, with spaces between words and each word capitalized. + :type location: str + :param instance_id: The instanceId GUID of a restorable database account. + :type instance_id: str + :param restore_location: The location where the restorable resources are located. + :type restore_location: str + :param restore_timestamp_in_utc: The timestamp when the restorable resources existed. + :type restore_timestamp_in_utc: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RestorableMongodbResourcesListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.cosmosdb.models.RestorableMongodbResourcesListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestorableMongodbResourcesListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'location': self._serialize.url("location", location, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + if restore_location is not None: + query_parameters['restoreLocation'] = self._serialize.query("restore_location", restore_location, 'str') + if restore_timestamp_in_utc is not None: + query_parameters['restoreTimestampInUtc'] = self._serialize.query("restore_timestamp_in_utc", restore_timestamp_in_utc, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('RestorableMongodbResourcesListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts/{instanceId}/restorableMongodbResources'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_sql_containers_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_sql_containers_operations.py new file mode 100644 index 000000000000..17f0b22f4439 --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_sql_containers_operations.py @@ -0,0 +1,138 @@ +# 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 typing import TYPE_CHECKING +import warnings + +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 azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class RestorableSqlContainersOperations(object): + """RestorableSqlContainersOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.cosmosdb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + location, # type: str + instance_id, # type: str + restorable_sql_database_rid=None, # type: Optional[str] + start_time=None, # type: Optional[str] + end_time=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.RestorableSqlContainersListResult"] + """Show the event feed of all mutations done on all the Azure Cosmos DB SQL containers under a + specific database. This helps in scenario where container was accidentally deleted. This API + requires 'Microsoft.DocumentDB/locations/restorableDatabaseAccounts/.../read' permission. + + :param location: Cosmos DB region, with spaces between words and each word capitalized. + :type location: str + :param instance_id: The instanceId GUID of a restorable database account. + :type instance_id: str + :param restorable_sql_database_rid: The resource ID of the SQL database. + :type restorable_sql_database_rid: str + :param start_time: The snapshot create timestamp after which snapshots need to be listed. + :type start_time: str + :param end_time: The snapshot create timestamp before which snapshots need to be listed. + :type end_time: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RestorableSqlContainersListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.cosmosdb.models.RestorableSqlContainersListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestorableSqlContainersListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'location': self._serialize.url("location", location, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + if restorable_sql_database_rid is not None: + query_parameters['restorableSqlDatabaseRid'] = self._serialize.query("restorable_sql_database_rid", restorable_sql_database_rid, 'str') + if start_time is not None: + query_parameters['startTime'] = self._serialize.query("start_time", start_time, 'str') + if end_time is not None: + query_parameters['endTime'] = self._serialize.query("end_time", end_time, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('RestorableSqlContainersListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts/{instanceId}/restorableSqlContainers'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_sql_databases_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_sql_databases_operations.py new file mode 100644 index 000000000000..1625972e3d7f --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_sql_databases_operations.py @@ -0,0 +1,124 @@ +# 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 typing import TYPE_CHECKING +import warnings + +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 azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class RestorableSqlDatabasesOperations(object): + """RestorableSqlDatabasesOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.cosmosdb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + location, # type: str + instance_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.RestorableSqlDatabasesListResult"] + """Show the event feed of all mutations done on all the Azure Cosmos DB SQL databases under the + restorable account. This helps in scenario where database was accidentally deleted to get the + deletion time. This API requires + 'Microsoft.DocumentDB/locations/restorableDatabaseAccounts/.../read' permission. + + :param location: Cosmos DB region, with spaces between words and each word capitalized. + :type location: str + :param instance_id: The instanceId GUID of a restorable database account. + :type instance_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RestorableSqlDatabasesListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.cosmosdb.models.RestorableSqlDatabasesListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestorableSqlDatabasesListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'location': self._serialize.url("location", location, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('RestorableSqlDatabasesListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts/{instanceId}/restorableSqlDatabases'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_sql_resources_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_sql_resources_operations.py new file mode 100644 index 000000000000..820e40dcf4be --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_restorable_sql_resources_operations.py @@ -0,0 +1,134 @@ +# 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 typing import TYPE_CHECKING +import warnings + +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 azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class RestorableSqlResourcesOperations(object): + """RestorableSqlResourcesOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.cosmosdb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + location, # type: str + instance_id, # type: str + restore_location=None, # type: Optional[str] + restore_timestamp_in_utc=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.RestorableSqlResourcesListResult"] + """Return a list of database and container combo that exist on the account at the given timestamp + and location. This helps in scenarios to validate what resources exist at given timestamp and + location. This API requires + 'Microsoft.DocumentDB/locations/restorableDatabaseAccounts/.../read' permission. + + :param location: Cosmos DB region, with spaces between words and each word capitalized. + :type location: str + :param instance_id: The instanceId GUID of a restorable database account. + :type instance_id: str + :param restore_location: The location where the restorable resources are located. + :type restore_location: str + :param restore_timestamp_in_utc: The timestamp when the restorable resources existed. + :type restore_timestamp_in_utc: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either RestorableSqlResourcesListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.cosmosdb.models.RestorableSqlResourcesListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.RestorableSqlResourcesListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'location': self._serialize.url("location", location, 'str'), + 'instanceId': self._serialize.url("instance_id", instance_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + if restore_location is not None: + query_parameters['restoreLocation'] = self._serialize.query("restore_location", restore_location, 'str') + if restore_timestamp_in_utc is not None: + query_parameters['restoreTimestampInUtc'] = self._serialize.query("restore_timestamp_in_utc", restore_timestamp_in_utc, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('RestorableSqlResourcesListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts/{instanceId}/restorableSqlResources'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_service_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_service_operations.py new file mode 100644 index 000000000000..b4c8fb352696 --- /dev/null +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_service_operations.py @@ -0,0 +1,438 @@ +# 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 typing import TYPE_CHECKING +import warnings + +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 azure.core.polling import LROPoller, NoPolling, PollingMethod +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.arm_polling import ARMPolling + +from .. import models as _models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar, Union + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class ServiceOperations(object): + """ServiceOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure.mgmt.cosmosdb.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + resource_group_name, # type: str + account_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.ServiceResourceListResult"] + """Gets the status of service. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ServiceResourceListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.cosmosdb.models.ServiceResourceListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServiceResourceListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('ServiceResourceListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/services'} # type: ignore + + def _create_initial( + self, + resource_group_name, # type: str + account_name, # type: str + service_name, # type: str + create_update_parameters, # type: "_models.ServiceResource" + **kwargs # type: Any + ): + # type: (...) -> Optional["_models.ServiceResource"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.ServiceResource"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + 'serviceName': self._serialize.url("service_name", service_name, 'str', max_length=50, min_length=3), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(create_update_parameters, 'ServiceResource') + 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 [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ServiceResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/services/{serviceName}'} # type: ignore + + def begin_create( + self, + resource_group_name, # type: str + account_name, # type: str + service_name, # type: str + create_update_parameters, # type: "_models.ServiceResource" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.ServiceResource"] + """Creates a service. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :param service_name: Cosmos DB service name. + :type service_name: str + :param create_update_parameters: The Service resource parameters. + :type create_update_parameters: ~azure.mgmt.cosmosdb.models.ServiceResource + :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: Pass in True if you'd like the ARMPolling 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 ServiceResource or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.cosmosdb.models.ServiceResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServiceResource"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._create_initial( + resource_group_name=resource_group_name, + account_name=account_name, + service_name=service_name, + create_update_parameters=create_update_parameters, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('ServiceResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + 'serviceName': self._serialize.url("service_name", service_name, 'str', max_length=50, min_length=3), + } + + if polling is True: polling_method = ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_create.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/services/{serviceName}'} # type: ignore + + def get( + self, + resource_group_name, # type: str + account_name, # type: str + service_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ServiceResource" + """Gets the status of service. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :param service_name: Cosmos DB service name. + :type service_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ServiceResource, or the result of cls(response) + :rtype: ~azure.mgmt.cosmosdb.models.ServiceResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ServiceResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + 'serviceName': self._serialize.url("service_name", service_name, 'str', max_length=50, min_length=3), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ServiceResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/services/{serviceName}'} # type: ignore + + def _delete_initial( + self, + resource_group_name, # type: str + account_name, # type: str + service_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self._delete_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + 'serviceName': self._serialize.url("service_name", service_name, 'str', max_length=50, min_length=3), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200, 202, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/services/{serviceName}'} # type: ignore + + def begin_delete( + self, + resource_group_name, # type: str + account_name, # type: str + service_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Deletes service with the given serviceName. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :param service_name: Cosmos DB service name. + :type service_name: str + :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: Pass in True if you'd like the ARMPolling 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 None or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[None] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._delete_initial( + resource_group_name=resource_group_name, + account_name=account_name, + service_name=service_name, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + if cls: + return cls(pipeline_response, None, {}) + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + 'serviceName': self._serialize.url("service_name", service_name, 'str', max_length=50, min_length=3), + } + + if polling is True: polling_method = ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/services/{serviceName}'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_sql_resources_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_sql_resources_operations.py index cd25d9aee393..2a7e8c49607c 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_sql_resources_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_sql_resources_operations.py @@ -70,7 +70,7 @@ def list_sql_databases( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -149,7 +149,7 @@ def get_sql_database( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -200,7 +200,7 @@ def _create_update_sql_database_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -266,8 +266,8 @@ def begin_create_update_sql_database( :type create_update_sql_database_parameters: ~azure.mgmt.cosmosdb.models.SqlDatabaseCreateUpdateParameters :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 ARMPolling 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 SqlDatabaseGetResults or the result of cls(response) @@ -335,7 +335,7 @@ def _delete_sql_database_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_sql_database_initial.metadata['url'] # type: ignore @@ -385,8 +385,8 @@ def begin_delete_sql_database( :type database_name: str :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 ARMPolling 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 None or the result of cls(response) @@ -464,7 +464,7 @@ def get_sql_database_throughput( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -515,7 +515,7 @@ def _update_sql_database_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -581,8 +581,8 @@ def begin_update_sql_database_throughput( :type update_throughput_parameters: ~azure.mgmt.cosmosdb.models.ThroughputSettingsUpdateParameters :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -650,7 +650,7 @@ def _migrate_sql_database_to_autoscale_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -677,8 +677,7 @@ def _migrate_sql_database_to_autoscale_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -708,8 +707,8 @@ def begin_migrate_sql_database_to_autoscale( :type database_name: str :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -776,7 +775,7 @@ def _migrate_sql_database_to_manual_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -803,8 +802,7 @@ def _migrate_sql_database_to_manual_throughput_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -834,8 +832,8 @@ def begin_migrate_sql_database_to_manual_throughput( :type database_name: str :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -915,7 +913,7 @@ def list_sql_containers( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -997,7 +995,7 @@ def get_sql_container( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1050,7 +1048,7 @@ def _create_update_sql_container_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -1120,8 +1118,8 @@ def begin_create_update_sql_container( :type create_update_sql_container_parameters: ~azure.mgmt.cosmosdb.models.SqlContainerCreateUpdateParameters :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 ARMPolling 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 SqlContainerGetResults or the result of cls(response) @@ -1192,7 +1190,7 @@ def _delete_sql_container_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_sql_container_initial.metadata['url'] # type: ignore @@ -1246,8 +1244,8 @@ def begin_delete_sql_container( :type container_name: str :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 ARMPolling 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 None or the result of cls(response) @@ -1330,7 +1328,7 @@ def get_sql_container_throughput( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1383,7 +1381,7 @@ def _update_sql_container_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -1453,8 +1451,8 @@ def begin_update_sql_container_throughput( :type update_throughput_parameters: ~azure.mgmt.cosmosdb.models.ThroughputSettingsUpdateParameters :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -1525,7 +1523,7 @@ def _migrate_sql_container_to_autoscale_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1553,8 +1551,7 @@ def _migrate_sql_container_to_autoscale_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -1587,8 +1584,8 @@ def begin_migrate_sql_container_to_autoscale( :type container_name: str :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -1658,7 +1655,7 @@ def _migrate_sql_container_to_manual_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1686,8 +1683,7 @@ def _migrate_sql_container_to_manual_throughput_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -1720,8 +1716,8 @@ def begin_migrate_sql_container_to_manual_throughput( :type container_name: str :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -1806,7 +1802,7 @@ def list_sql_stored_procedures( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -1850,9 +1846,8 @@ def get_next(next_link=None): response = pipeline_response.http_response if response.status_code not in [200]: - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) return pipeline_response @@ -1893,7 +1888,7 @@ def get_sql_stored_procedure( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -1948,7 +1943,7 @@ def _create_update_sql_stored_procedure_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -2022,8 +2017,8 @@ def begin_create_update_sql_stored_procedure( :type create_update_sql_stored_procedure_parameters: ~azure.mgmt.cosmosdb.models.SqlStoredProcedureCreateUpdateParameters :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 ARMPolling 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 SqlStoredProcedureGetResults or the result of cls(response) @@ -2097,7 +2092,7 @@ def _delete_sql_stored_procedure_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_sql_stored_procedure_initial.metadata['url'] # type: ignore @@ -2155,8 +2150,8 @@ def begin_delete_sql_stored_procedure( :type stored_procedure_name: str :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 ARMPolling 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 None or the result of cls(response) @@ -2240,7 +2235,7 @@ def list_sql_user_defined_functions( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -2326,7 +2321,7 @@ def get_sql_user_defined_function( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -2381,7 +2376,7 @@ def _create_update_sql_user_defined_function_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -2455,8 +2450,8 @@ def begin_create_update_sql_user_defined_function( :type create_update_sql_user_defined_function_parameters: ~azure.mgmt.cosmosdb.models.SqlUserDefinedFunctionCreateUpdateParameters :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 ARMPolling 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 SqlUserDefinedFunctionGetResults or the result of cls(response) @@ -2530,7 +2525,7 @@ def _delete_sql_user_defined_function_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_sql_user_defined_function_initial.metadata['url'] # type: ignore @@ -2588,8 +2583,8 @@ def begin_delete_sql_user_defined_function( :type user_defined_function_name: str :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 ARMPolling 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 None or the result of cls(response) @@ -2673,7 +2668,7 @@ def list_sql_triggers( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -2759,7 +2754,7 @@ def get_sql_trigger( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -2814,7 +2809,7 @@ def _create_update_sql_trigger_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -2888,8 +2883,8 @@ def begin_create_update_sql_trigger( :type create_update_sql_trigger_parameters: ~azure.mgmt.cosmosdb.models.SqlTriggerCreateUpdateParameters :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 ARMPolling 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 SqlTriggerGetResults or the result of cls(response) @@ -2963,7 +2958,7 @@ def _delete_sql_trigger_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_sql_trigger_initial.metadata['url'] # type: ignore @@ -3021,8 +3016,8 @@ def begin_delete_sql_trigger( :type trigger_name: str :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 ARMPolling 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 None or the result of cls(response) @@ -3076,3 +3071,927 @@ def get_long_running_output(pipeline_response): else: return LROPoller(self._client, raw_result, get_long_running_output, polling_method) begin_delete_sql_trigger.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/triggers/{triggerName}'} # type: ignore + + def _retrieve_continuous_backup_information_initial( + self, + resource_group_name, # type: str + account_name, # type: str + database_name, # type: str + container_name, # type: str + location, # type: "_models.ContinuousBackupRestoreLocation" + **kwargs # type: Any + ): + # type: (...) -> Optional["_models.BackupInformation"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.BackupInformation"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._retrieve_continuous_backup_information_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + 'databaseName': self._serialize.url("database_name", database_name, 'str'), + 'containerName': self._serialize.url("container_name", container_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(location, 'ContinuousBackupRestoreLocation') + 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 [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('BackupInformation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _retrieve_continuous_backup_information_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/retrieveContinuousBackupInformation'} # type: ignore + + def begin_retrieve_continuous_backup_information( + self, + resource_group_name, # type: str + account_name, # type: str + database_name, # type: str + container_name, # type: str + location, # type: "_models.ContinuousBackupRestoreLocation" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.BackupInformation"] + """Retrieves continuous backup information for a container resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :param database_name: Cosmos DB database name. + :type database_name: str + :param container_name: Cosmos DB container name. + :type container_name: str + :param location: The name of the continuous backup restore location. + :type location: ~azure.mgmt.cosmosdb.models.ContinuousBackupRestoreLocation + :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: Pass in True if you'd like the ARMPolling 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 BackupInformation or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.cosmosdb.models.BackupInformation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.BackupInformation"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._retrieve_continuous_backup_information_initial( + resource_group_name=resource_group_name, + account_name=account_name, + database_name=database_name, + container_name=container_name, + location=location, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('BackupInformation', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + 'databaseName': self._serialize.url("database_name", database_name, 'str'), + 'containerName': self._serialize.url("container_name", container_name, 'str'), + } + + if polling is True: polling_method = ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_retrieve_continuous_backup_information.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/retrieveContinuousBackupInformation'} # type: ignore + + def get_sql_role_definition( + self, + role_definition_id, # type: str + resource_group_name, # type: str + account_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SqlRoleDefinitionGetResults" + """Retrieves the properties of an existing Azure Cosmos DB SQL Role Definition with the given Id. + + :param role_definition_id: The GUID for the Role Definition. + :type role_definition_id: str + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SqlRoleDefinitionGetResults, or the result of cls(response) + :rtype: ~azure.mgmt.cosmosdb.models.SqlRoleDefinitionGetResults + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SqlRoleDefinitionGetResults"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self.get_sql_role_definition.metadata['url'] # type: ignore + path_format_arguments = { + 'roleDefinitionId': self._serialize.url("role_definition_id", role_definition_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SqlRoleDefinitionGetResults', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_sql_role_definition.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleDefinitions/{roleDefinitionId}'} # type: ignore + + def _create_update_sql_role_definition_initial( + self, + role_definition_id, # type: str + resource_group_name, # type: str + account_name, # type: str + create_update_sql_role_definition_parameters, # type: "_models.SqlRoleDefinitionCreateUpdateParameters" + **kwargs # type: Any + ): + # type: (...) -> Optional["_models.SqlRoleDefinitionGetResults"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.SqlRoleDefinitionGetResults"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_update_sql_role_definition_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'roleDefinitionId': self._serialize.url("role_definition_id", role_definition_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(create_update_sql_role_definition_parameters, 'SqlRoleDefinitionCreateUpdateParameters') + 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 [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('SqlRoleDefinitionGetResults', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_update_sql_role_definition_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleDefinitions/{roleDefinitionId}'} # type: ignore + + def begin_create_update_sql_role_definition( + self, + role_definition_id, # type: str + resource_group_name, # type: str + account_name, # type: str + create_update_sql_role_definition_parameters, # type: "_models.SqlRoleDefinitionCreateUpdateParameters" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.SqlRoleDefinitionGetResults"] + """Creates or updates an Azure Cosmos DB SQL Role Definition. + + :param role_definition_id: The GUID for the Role Definition. + :type role_definition_id: str + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :param create_update_sql_role_definition_parameters: The properties required to create or + update a Role Definition. + :type create_update_sql_role_definition_parameters: ~azure.mgmt.cosmosdb.models.SqlRoleDefinitionCreateUpdateParameters + :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: Pass in True if you'd like the ARMPolling 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 SqlRoleDefinitionGetResults or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.cosmosdb.models.SqlRoleDefinitionGetResults] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.SqlRoleDefinitionGetResults"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._create_update_sql_role_definition_initial( + role_definition_id=role_definition_id, + resource_group_name=resource_group_name, + account_name=account_name, + create_update_sql_role_definition_parameters=create_update_sql_role_definition_parameters, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('SqlRoleDefinitionGetResults', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'roleDefinitionId': self._serialize.url("role_definition_id", role_definition_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + + if polling is True: polling_method = ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_create_update_sql_role_definition.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleDefinitions/{roleDefinitionId}'} # type: ignore + + def _delete_sql_role_definition_initial( + self, + role_definition_id, # type: str + resource_group_name, # type: str + account_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self._delete_sql_role_definition_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'roleDefinitionId': self._serialize.url("role_definition_id", role_definition_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200, 202, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_sql_role_definition_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleDefinitions/{roleDefinitionId}'} # type: ignore + + def begin_delete_sql_role_definition( + self, + role_definition_id, # type: str + resource_group_name, # type: str + account_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Deletes an existing Azure Cosmos DB SQL Role Definition. + + :param role_definition_id: The GUID for the Role Definition. + :type role_definition_id: str + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :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: Pass in True if you'd like the ARMPolling 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 None or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[None] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._delete_sql_role_definition_initial( + role_definition_id=role_definition_id, + resource_group_name=resource_group_name, + account_name=account_name, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + if cls: + return cls(pipeline_response, None, {}) + + path_format_arguments = { + 'roleDefinitionId': self._serialize.url("role_definition_id", role_definition_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + + if polling is True: polling_method = ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_delete_sql_role_definition.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleDefinitions/{roleDefinitionId}'} # type: ignore + + def list_sql_role_definitions( + self, + resource_group_name, # type: str + account_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.SqlRoleDefinitionListResult"] + """Retrieves the list of all Azure Cosmos DB SQL Role Definitions. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SqlRoleDefinitionListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.cosmosdb.models.SqlRoleDefinitionListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SqlRoleDefinitionListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list_sql_role_definitions.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('SqlRoleDefinitionListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_sql_role_definitions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleDefinitions'} # type: ignore + + def get_sql_role_assignment( + self, + role_assignment_id, # type: str + resource_group_name, # type: str + account_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.SqlRoleAssignmentGetResults" + """Retrieves the properties of an existing Azure Cosmos DB SQL Role Assignment with the given Id. + + :param role_assignment_id: The GUID for the Role Assignment. + :type role_assignment_id: str + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: SqlRoleAssignmentGetResults, or the result of cls(response) + :rtype: ~azure.mgmt.cosmosdb.models.SqlRoleAssignmentGetResults + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SqlRoleAssignmentGetResults"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self.get_sql_role_assignment.metadata['url'] # type: ignore + path_format_arguments = { + 'roleAssignmentId': self._serialize.url("role_assignment_id", role_assignment_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('SqlRoleAssignmentGetResults', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_sql_role_assignment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleAssignments/{roleAssignmentId}'} # type: ignore + + def _create_update_sql_role_assignment_initial( + self, + role_assignment_id, # type: str + resource_group_name, # type: str + account_name, # type: str + create_update_sql_role_assignment_parameters, # type: "_models.SqlRoleAssignmentCreateUpdateParameters" + **kwargs # type: Any + ): + # type: (...) -> Optional["_models.SqlRoleAssignmentGetResults"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["_models.SqlRoleAssignmentGetResults"]] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self._create_update_sql_role_assignment_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'roleAssignmentId': self._serialize.url("role_assignment_id", role_assignment_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(create_update_sql_role_assignment_parameters, 'SqlRoleAssignmentCreateUpdateParameters') + 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 [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('SqlRoleAssignmentGetResults', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_update_sql_role_assignment_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleAssignments/{roleAssignmentId}'} # type: ignore + + def begin_create_update_sql_role_assignment( + self, + role_assignment_id, # type: str + resource_group_name, # type: str + account_name, # type: str + create_update_sql_role_assignment_parameters, # type: "_models.SqlRoleAssignmentCreateUpdateParameters" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["_models.SqlRoleAssignmentGetResults"] + """Creates or updates an Azure Cosmos DB SQL Role Assignment. + + :param role_assignment_id: The GUID for the Role Assignment. + :type role_assignment_id: str + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :param create_update_sql_role_assignment_parameters: The properties required to create or + update a Role Assignment. + :type create_update_sql_role_assignment_parameters: ~azure.mgmt.cosmosdb.models.SqlRoleAssignmentCreateUpdateParameters + :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: Pass in True if you'd like the ARMPolling 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 SqlRoleAssignmentGetResults or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.cosmosdb.models.SqlRoleAssignmentGetResults] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["_models.SqlRoleAssignmentGetResults"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._create_update_sql_role_assignment_initial( + role_assignment_id=role_assignment_id, + resource_group_name=resource_group_name, + account_name=account_name, + create_update_sql_role_assignment_parameters=create_update_sql_role_assignment_parameters, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('SqlRoleAssignmentGetResults', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + path_format_arguments = { + 'roleAssignmentId': self._serialize.url("role_assignment_id", role_assignment_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + + if polling is True: polling_method = ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_create_update_sql_role_assignment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleAssignments/{roleAssignmentId}'} # type: ignore + + def _delete_sql_role_assignment_initial( + self, + role_assignment_id, # type: str + resource_group_name, # type: str + account_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + # Construct URL + url = self._delete_sql_role_assignment_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'roleAssignmentId': self._serialize.url("role_assignment_id", role_assignment_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + 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) + response = pipeline_response.http_response + + if response.status_code not in [200, 202, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_sql_role_assignment_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleAssignments/{roleAssignmentId}'} # type: ignore + + def begin_delete_sql_role_assignment( + self, + role_assignment_id, # type: str + resource_group_name, # type: str + account_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """Deletes an existing Azure Cosmos DB SQL Role Assignment. + + :param role_assignment_id: The GUID for the Role Assignment. + :type role_assignment_id: str + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :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: Pass in True if you'd like the ARMPolling 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 None or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[None] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._delete_sql_role_assignment_initial( + role_assignment_id=role_assignment_id, + resource_group_name=resource_group_name, + account_name=account_name, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + if cls: + return cls(pipeline_response, None, {}) + + path_format_arguments = { + 'roleAssignmentId': self._serialize.url("role_assignment_id", role_assignment_id, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + + if polling is True: polling_method = ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_delete_sql_role_assignment.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleAssignments/{roleAssignmentId}'} # type: ignore + + def list_sql_role_assignments( + self, + resource_group_name, # type: str + account_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["_models.SqlRoleAssignmentListResult"] + """Retrieves the list of all Azure Cosmos DB SQL Role Assignments. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param account_name: Cosmos DB database account name. + :type account_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SqlRoleAssignmentListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.cosmosdb.models.SqlRoleAssignmentListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.SqlRoleAssignmentListResult"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-04-01-preview" + accept = "application/json" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') + + if not next_link: + # Construct URL + url = self.list_sql_role_assignments.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=50, min_length=3, pattern=r'^[a-z0-9]+(-[a-z0-9]+)*'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('SqlRoleAssignmentListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_sql_role_assignments.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleAssignments'} # type: ignore diff --git a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_table_resources_operations.py b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_table_resources_operations.py index 254901d431db..b47811e3f59f 100644 --- a/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_table_resources_operations.py +++ b/sdk/cosmos/azure-mgmt-cosmosdb/azure/mgmt/cosmosdb/operations/_table_resources_operations.py @@ -70,7 +70,7 @@ def list_tables( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -148,7 +148,7 @@ def get_table( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -199,7 +199,7 @@ def _create_update_table_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -264,8 +264,8 @@ def begin_create_update_table( :type create_update_table_parameters: ~azure.mgmt.cosmosdb.models.TableCreateUpdateParameters :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 ARMPolling 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 TableGetResults or the result of cls(response) @@ -333,7 +333,7 @@ def _delete_table_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" # Construct URL url = self._delete_table_initial.metadata['url'] # type: ignore @@ -383,8 +383,8 @@ def begin_delete_table( :type table_name: str :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 ARMPolling 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 None or the result of cls(response) @@ -462,7 +462,7 @@ def get_table_throughput( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -513,7 +513,7 @@ def _update_table_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -579,8 +579,8 @@ def begin_update_table_throughput( :type update_throughput_parameters: ~azure.mgmt.cosmosdb.models.ThroughputSettingsUpdateParameters :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -648,7 +648,7 @@ def _migrate_table_to_autoscale_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -675,8 +675,7 @@ def _migrate_table_to_autoscale_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -706,8 +705,8 @@ def begin_migrate_table_to_autoscale( :type table_name: str :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response) @@ -774,7 +773,7 @@ def _migrate_table_to_manual_throughput_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-15" + api_version = "2021-04-01-preview" accept = "application/json" # Construct URL @@ -801,8 +800,7 @@ def _migrate_table_to_manual_throughput_initial( if response.status_code not in [200, 202]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(_models.ErrorResponseUpdatedFormat, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: @@ -832,8 +830,8 @@ def begin_migrate_table_to_manual_throughput( :type table_name: str :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 ARMPolling 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 ThroughputSettingsGetResults or the result of cls(response)